利用animationDidStop处理动画结束需要注意的

使用CABasicAnimation时,利用animationDidStop区分哪个动画结束需要注意到的地方
如下:
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。。无法区分是哪种动画
因此一定要加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)
{
//此处执行你想要做的事情
}
}

完结!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文转载自:http://www.cocoachina.com/ios/20150105/10812.html 为...
    idiot_lin阅读 5,043评论 0 1
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,526评论 5 13
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 12,715评论 6 30
  • 如果想让事情变得顺利,只有靠自己 -- 夏尔·纪尧姆 上一章介绍了隐式动画的概念。隐式动画是在iOS平台创建动态用...
    雪_晟阅读 3,621评论 0 1
  • 显式动画 显式动画,它能够对一些属性做指定的自定义动画,或者创建非线性动画,比如沿着任意一条曲线移动。 属性动画 ...
    清风沐沐阅读 6,125评论 1 5