如何暂停当前正在运行的动画?

时间:2009-07-20 11:05:18

标签: iphone cocoa-touch uikit core-animation

我正在运行Core Animation,并希望在按下按钮时暂停它。所以有一个方法-auseAnimation。当动画暂停时,我希望动画视图在动画时保持当前状态。即,如果视图从左上角移动到右下角,并且中间某处动画暂停,则视图应保持在中间。 有没有办法做到这一点?

据我所知,有一个setAnimationsEnabled = NO选项,但在动画运行时不起作用,对吗?

2 个答案:

答案 0 :(得分:2)

您可以通过将动画的速度设置为零来暂停图层动画,请参阅How to pause the animation of a layer tree

答案 1 :(得分:1)

您可以通过禁用动画,然后将模型图层的值设置为表示层的值(对于定义动画的所有属性)来执行此操作。

例如。 layer.transform = layer.presentationLayer.transform;

恢复动画=重新启用动画并将当前位置的动画设置为所需的最终位置(您可能需要调整曲线等以获得可接受的内容)。