我正在尝试做类似的事情:
<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)
我错过了什么?
答案 0 :(得分:2)
不,你不能按照你在问题中描述的方式重复使用它们。
documentation for animationForKey:
说你不能这样做(在讨论中):
animationForKey:
返回添加到具有指定标识符的接收器的动画。
的参数强>
- (CAAnimation *)animationForKey:(NSString *)key
键
返回值
一个字符串,指定动画的标识符。与标识符匹配的动画对象,如果不存在此类动画,则为
的讨论强>nil
。尝试修改返回对象的任何属性将导致未定义的行为。