如何在 SwiftUI 中使用动画模糊视图?

How to blur View with Animation in SwiftUI?

我正在根据 Scene Phase 模糊视图。我还添加了 withAnimation { ... },但是 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")                    
                    }
                })
        }
    }
}

有没有人知道为什么 Blur-Status 没有任何 Animation 的变化?

感谢您的帮助。

尽管此行为似乎无法作为 App 中的根节点正常工作,但如果您移动模糊和动画 似乎可以正常工作 里面 View:

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")
                }
            })
    }
}