我正在使用SwiftUI制作一个相对复杂的动画,想知道将各个动画阶段链接在一起的最佳/最优雅的方法是什么。
假设我有一个视图,首先需要进行缩放,然后等待几秒钟,然后淡出(然后等几秒钟并无限期地重新开始)。
如果我尝试在同一个视图/堆栈上使用多个withAnimation()块,它们会相互干扰并破坏动画。
到目前为止,我能想到的最好办法是在初始视图的.onAppear()修改器上调用自定义函数,在该函数中,每个动画阶段都有一个带延迟的withAnimation()块。因此,它基本上看起来像这样:
func doAnimations() {
withAnimation(...)
DispatchQueue.main.asyncAfter(...)
withAnimation(...)
DispatchQueue.main.asyncAfter(...)
withAnimation(...)
...
}
内容变得相当长,而且不太“美观”。我相信一定有更好/更好的方法来做到这一点,但迄今为止我尝试的所有方法都没有给我想要的确切流程。
任何想法/建议/提示将不胜感激。谢谢!
DispatchQueue.main.asyncAfter(deadline: .now() + x.xx)
代替了它,这个方法可行。 - C6Silver