很多人都在谈论在使用CABasicAnimation对象后保留它。
所以设置
removedOnCompletion = NO
动画对象在动画完成时保持附加到图层。如何在不创建新的CABasicAnimation的情况下重新启动此动画?
保持这个对象的意义何在?我知道的唯一好处是我们可以设置removedOnCompletion = NO并设置kCAFillModeForwards,以便Core Animation不会将可视化表示还原为CALayer中的模型值。
但是如何重新使用动画,就像每个人都在谈论的那样?
答案 0 :(得分:6)
试试这个:
要稍后获取参考,请致电[layer animationForKey:@"myKey"]
阅读this note from Apple,其中介绍了如何暂停和恢复(重新启动)动画。
答案 1 :(得分:0)
这对我有用,但我相信有人会告诉我价值已存储在钥匙中..
当我创建一个图层并为其分配动画时,我将动画设置为与图层关联的键控值。
在此示例中,layersCurrentAnimation是CABasicAnimation,myAnimatedLayer是CALayer。
[myAnimatedLayer setValue:layersCurrentAnimation forKey:@"basicAnimation"]
然后如果动画停止,我会从图层中取出动画值并重新运行
CABasicAnimation *thisAnimation = [myAnimatedLayer valueForKey:@"basicAnimation"];
[myAnimatedLayer addAnimation:thisAnimation forKey:nil];