使用CABasicAnimation時,利用animationDidStop區(qū)分哪個動畫結束需要注意到的地方
如下:
CABasicAnimation*rightAni = [CABasicAnimationanimationWithKeyPath:@"strokeEnd"];
rightAni.fromValue=@0;
rightAni.toValue=@1;
rightAni.duration=1.5;
rightAni.delegate=self;
[_rightFlagLayer addAnimation:rightAniforKey:DrawingRightFlag];
按照上面這樣寫,動畫的removedOnCompletion屬性默認為YES,運行一次動畫就會銷毀。結果就是動畫結束的代理回調中使用
[_rightFlagLayer animationForKey:DrawingRightFlag]為null。。無法區(qū)分是哪種動畫
因此一定要加rightAni.removedOnCompletion=NO這句話
完成后的代碼如下:
CABasicAnimation*rightAni = [CABasicAnimationanimationWithKeyPath:@"strokeEnd"];
rightAni.fromValue=@0;
rightAni.toValue=@1;
rightAni.duration=1.5;
rightAni.delegate=self;
rightAni.removedOnCompletion=NO;
[_rightFlagLayer addAnimation:rightAniforKey:DrawingRightFlag];
-(void)animationDidStop:(CAAnimation*)anim finished:(BOOL)flag
{
if([_rightFlagLayer animationForKey:DrawingRightFlag] == anim)
{
//此處執(zhí)行你想要做的事情
}
}
完結!