我已经尝试过使用Spring链接动画,但是很遗憾,文档尚不清楚链接动画(https://github.com/MengTo/Spring)。
我还看到有些人问了同样的问题,但是不知何故,他们的答案对我不起作用。 (Spring Meng To chaining animations?,https://github.com/MengTo/Spring/issues/123)
我已经尝试过使用Spring例子中的链:
func startAnimationSpringChain() {
self.springView.animation = "slideRight"
self.springView.animateNext {
self.springView.animation = "fadeOut"
self.springView.animate()
}
}
这里是第一个动画作品,但第二个动画是“ fadeOut”和反向播放的“ slideRight”的组合。
然后我尝试使用Promises:
func startAnimationPromise() {
firstly {
self.firstAnimation()
}.done {
self.secondAnimation()
}
}
func firstAnimation () -> Promise<Void>{
return Promise { seal in
self.springView.animation = "SlideRight"
self.springView.animate()
seal.fulfill(())
}
}
func secondAnimation() -> Promise<Void>{
return Promise { seal in
self.springView.animation = "fadeOut"
self.springView.animate()
seal.fulfill(())
}
}
这导致仅以非常快的速度播放了第二个动画“ fadeOut”。
有人可以解释这三个功能吗?
animateNext { ... }
animateTo()
animateToNext { ... }
因为我很难理解它们的确切功能。
谢谢您的帮助,我非常感谢,对于我的代码的各种建议我感到很高兴! :)
最佳
答案 0 :(得分:0)
我使用animateToNext
方法来链接动画。看来animateNext
没有等待上一个动画的结束。像这样:
self.springView.animation = Spring.AnimationPreset.SlideRight.rawValue
self.springView.animateToNext {
self.springView.animation = Spring.AnimationPreset.FadeOut.rawValue
self.springView.animate()
}
您还会看到this的答案。
但是,当在一个动画链中使用它们时,似乎并不是所有的动画都能正常工作。