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的方式获取。