我可以通过从图层的animationForKey中返回CAAnimationGroup来重用它吗?

时间:2012-06-13 08:11:24

标签: ios core-animation

我正在尝试做类似的事情:

<Create a CAAnimationGroup aGroup with removedOnCompletion = NO ...>
[aLayer addAnimation:aGroup forKey:@"someKey"];

所以动画组播放......

然后我想要检索相同的动画组而不重新创建它并将其重新添加到图层以便重放。类似的东西:

CAAnimationGroup* theOldGroup = (CAAnimationGroup*)[aLayer animationForKey:@"someKey"];
[aLayer addAnimation:theOldGroup forKey:@"someKey"];

但是,aGroup的地址与从animationForKey返回的地址不同。并尝试将其速度设置为1或使用它做任何事情都会导致应用程序崩溃(又名BAD_ACCESS)

我错过了什么?

1 个答案:

答案 0 :(得分:2)

不,你不能按照你在问题中描述的方式重复使用它们。


documentation for animationForKey:说你不能这样做(在讨论中):

  

animationForKey:

     

返回添加到具有指定标识符的接收器的动画。

     

- (CAAnimation *)animationForKey:(NSString *)key

     的参数      


  一个字符串,指定动画的标识符。

     返回值      

与标识符匹配的动画对象,如果不存在此类动画,则为nil

     的讨论      

尝试修改返回对象的任何属性将导致未定义的行为。