[英]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.