代码之家  ›  专栏  ›  技术社区  ›  Thanks

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

  •  0
  • Thanks  · 技术社区  · 17 年前

    我有一个核心动画运行,想暂停时,一个按钮按下。所以有一个方法-pauseAnimation。当动画暂停时,我希望动画视图在设置动画时保持当前状态。也就是说,如果视图从左上到右下移动,在中间的某个地方,动画暂停,视图应该停留在中间。 有办法吗?

    据我所知,有一个setAnimationsEnabled=NO选项,但当动画运行时,它就不起作用了,对吧?

    2 回复  |  直到 17 年前
        1
  •  2
  •   Douglas    16 年前

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

        2
  •  1
  •   Andrew Pouliot    17 年前

    为此,可以禁用动画,然后将模型层的值设置为表示层的值(对于定义动画的所有特性)。

    如。图层.变换= layer.presentationLayer.transform;

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