CAAnimation-代理方法

CAAnimation有两个代理方法分别是

- (void)animationDidStart:(CAAnimation*)anim;

- (void)animationDidStop:(CAAnimation*)anim finished:(BOOL)flag;

我在VC里通过Property创建一个CAAnimationGroup的变量,并且将该实例的代理设置为该VC,但在调用CAAnimation的代理方法时,我利用If(anim == self.animationGroup)去区别不同动画,发现该判断的结果一直都是NO。

将判断条件改为If(anim == [******.layer animationForKey:@"***"]),(这个key值是在为某个layer添加该Animation时设定的Key值)才能判断为YES。

打印了用animationForKey获取的AnimationGroup的地址以及通过self.animationGroup获取的地址,发现是两个完全不同的地址。

因此,在CAAnimation代理方法中若要获取某个Animation去区分动画,需要通过animationForKey的方式获取。

你可能感兴趣的:(CAAnimation-代理方法)