CAAnimation有兩個(gè)代理方法分別是
- (void)animationDidStart:(CAAnimation*)anim;
- (void)animationDidStop:(CAAnimation*)anim finished:(BOOL)flag环疼;
我在VC里通過Property創(chuàng)建一個(gè)CAAnimationGroup的變量鄙币,并且將該實(shí)例的代理設(shè)置為該VC,但在調(diào)用CAAnimation的代理方法時(shí),我利用If(anim == self.animationGroup)去區(qū)別不同動(dòng)畫寨典,發(fā)現(xiàn)該判斷的結(jié)果一直都是NO。
將判斷條件改為If(anim == [******.layer animationForKey:@"***"])瞻离,(這個(gè)key值是在為某個(gè)layer添加該Animation時(shí)設(shè)定的Key值)才能判斷為YES秉溉。
打印了用animationForKey獲取的AnimationGroup的地址以及通過self.animationGroup獲取的地址,發(fā)現(xiàn)是兩個(gè)完全不同的地址跑筝。
因此死讹,在CAAnimation代理方法中若要獲取某個(gè)Animation去區(qū)分動(dòng)畫,需要通過animationForKey的方式獲取曲梗。