SwiftUI通过变量控制视图显示时,如果变量为true,显示视图。但是视图动画会从左上角展开。
if idleManager.isIdle {
SlientMode(isSlientMode: $idleManager.isIdle)
}
解决方案:在控制变量的代码中使用withAnimation。
DispatchQueue.main.async {
withAnimation(.easeInOut(duration: 0.5)) { // 添加 withAnimation
self.isIdle = true
}
}
withAnimation可以解决SwitUI视图动画显示异常的问题。
参考文章
1、NavigationView 中的 SwiftUI 动画:https://developer.apple.com/forums/thread/682779
