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