在我的应用程序中,我有一些CAAnimations,它无限循环(animation.repeatCount = HUGE_VALF)。
我想要做的是删除这些动画,在当前周期已经完成。-[CALayer removeAnimationForKey:]使图层跳转到正常位置,这是我想要防止的。
我可以做的是:获得层表示层的当前转换(我正在旋转),计算完成动画的时间,删除动画,并添加另一个带有一个repeatCount的动画,但这似乎是不必要的复杂,我认为必须有更简单的方法来做到这一点。
有什么建议吗?
发布于 2012-04-27 01:29:53
如何使用一个动画,其完成块再次调用动画,基于一个标志?当您想要使动画序列停止时,将标志设置为false。完成块将看到重复标志为false,并在最后一个循环结束时停止。
提交动画后,应将转换更改为其结束值。如果要进行视图动画,只需将转换设置为其最终值即可。这样,一旦动画被删除,它将保持在结束状态。
如果您使用的是层转换,则需要将将转换设置为其最后状态的代码放在CATransactionBegin/ with CATransaction setDisableActions: YES中,这样更改就不会被隐式动画化。
发布于 2019-04-04 15:29:19
使用相同的属性来设置重复次数,您可以得到您想要的行为。这将在循环结束后结束动画。
animation.repeatCount = 0https://stackoverflow.com/questions/10343565
复制相似问题