我正在使用 UIImageView 为一堆图像制作动画。我知道我可以通过改变 animationDuration 来改变速度,但这似乎直到动画重新启动才生效。
我的问题是,除了真的不想重新启动动画之外,因为这限制了我每个周期只能更改一次速度,而且似乎也没有办法找出当前的帧正在显示,因此我将不得不依靠计时器来“猜测”它是哪一个。
所以我的问题是,是否有一种方法可以在不重新启动动画的情况下改变速度,如果没有,是否有某种方法可以避免上述问题?我不太热衷于编写自己的动画类,但如果没有更好的解决方案,最终可能不得不编写。
最佳答案
我不确定这是否适用于 UIImageView
父类(super class),但是 UIView
类具有以下属性,默认为 NO
:
setAnimationBeginsFromCurrentState:(BOOL)fromCurrentState
更改为 YES
并调用 commitAnimations
方法后,对 beginAnimations:context:
的后续调用将在动画开始时开始之前停止了。
https://stackoverflow.com/questions/765834/