在AnimationDidStop中检索CAKeyframeAnimationKey的键

时间:2011-11-30 01:02:25

标签: ios core-animation key cakeyframeanimation

我有多个CAKeyframeAnimation对象,每个对象都有一个如下所示的唯一键:

 .....
 [myAnimation setValues:images];
 [myAnimation setDuration:1];
 ....
 [myLayer addAnimation:myAnimation forKey:@"unique key"];

我的问题是,如果我有这样的多个动画,并且每个都有一个唯一的键,我如何在AnimationDidStop方法中检索它们的键?我希望能够做到这样的事情:

 -(void)animationDidStop:(CAAnimation*)animation finished:(BOOL)flag{
 if(..... ==@"uniquekey1"){
 //code to handle this specific animation here:
 }else if(.... ==@"uiquekey2"){
 //code to handle this specific animation here:
 }
 }

1 个答案:

答案 0 :(得分:1)

没有公共API来检索密钥。如果您有图层对象,则可以发送它animationsKeys以获取其所有动画关键字的数组。然后,您可以使用animationForKey:测试每个。

最简单的解决方案(除了为每个动画使用单独的委托之外)是创建NSMutableDictionary。将动画对象用作键,将动画键字符串用作其值。