簡體   English   中英

如何在 SwiftUI 中使用 Animation 模糊視圖?

[英]How to blur View with Animation in SwiftUI?

我正在根據Scene Phase模糊視圖。 我還添加了withAnimation {... } ,但是,在沒有任何 Animation Blur-Transition 查看我的代碼:

@main struct ExampleApp: App {
    @Environment(\.scenePhase) var scenePhase
    @State private var blurRadius: CGFloat = 0

    var body: some Scene {
        WindowGroup {
            RootView()
                .blur(radius: blurRadius)
                .onChange(of: scenePhase, perform: { value in
                    switch value {
                        case .active : withAnimation { blurRadius = 0 }
                        case .inactive: withAnimation { blurRadius = 15 }
                        @unknown default: print("Unknown")                    
                    }
                })
        }
    }
}

有誰知道為什么在沒有任何Animation的情況下Blur-Status會發生變化?

謝謝您的幫助。

盡管此行為似乎無法作為App中的根節點正常工作,但如果您View中移動模糊和 animation ,它似乎確實有效:

struct RootView: View {
    @Environment(\.scenePhase) var scenePhase
    @State var blurRadius : CGFloat = 0
    
    var body: some View {
        Text("Hello, world!")
            .blur(radius: blurRadius)
            .onChange(of: scenePhase, perform: { value in
                switch value {
                case .active : withAnimation { blurRadius = 0 }
                case .inactive: withAnimation { blurRadius = 15 }
                @unknown default: print("Unknown")
                }
            })
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM