【发布时间】:2025-11-28 11:45:01
【问题描述】:
如果有两个动画依次发生,我想删除第一个动画,并从当前位置开始第二个动画。在将第二个动画添加到图层之前,我使用 [layer removeAllAnimations] 取消了第一个动画,图层总是回到初始位置。我知道这是 removeAllAnimations 的默认操作,但我想知道是否有任何方法可以将图层设置为保持当前位置。 非常感谢。
更新—— 我通过获取presentationLayer位置并将其分配给模型层位置来完成此操作。而且我也用 - (void)animationDidStop:(UIAnimation*)动画完成:(BOOL)flag; 检查动画是否完成。
【问题讨论】:
-
您不必致电
removeAllAnimations(如果您担心内存泄漏)。无论如何:animation.fillMode = kCAFillModeForwards; animation.removedOnCompletion = NO;通常会成功。 -
谢谢 rokjarc。是的,你是对的,但我想做的是在第一个动画完成之前取消它并开始第二个动画。我通过获取presentationLayer位置并将其分配给模型层位置来完成此操作。之后,我还修改了 animationDidStop 委托方法来检查动画是否停止。
标签: objective-c ios core-animation