繁体   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