美文网首页
iOS知识点(14)核心动画Core Animation

iOS知识点(14)核心动画Core Animation

作者: 浩杰ee | 来源:发表于2018-02-12 17:35 被阅读34次

动画小王子写的书

iOS动画,绝对够分量!

iOS动画篇_CoreAnimation(超详细解析核心动画)

老司机带你走进Core Animation

iOS动画(Core Animation)总结

CAAnimation是什么呢?

CAAniamtion是一个抽象类,遵循着CAMediaTiming和CAAciotn两个协议。通过他的4个子类,我们可以实现很多绚丽的动画效果。

CAAnimation下有几个属性

timingFunction,这个呢,指定的是动画的节奏。所谓节奏是什么什么意思呢?就是动画执行的快慢交替。有如下几个可选项

kCAMediaTimingFunctionLinear//线性节奏,就是匀速
kCAMediaTimingFunctionEaseIn//淡入,缓慢加速进入,然后匀速
kCAMediaTimingFunctionEaseOut//淡出,匀速,然后缓慢减速移除
kCAMediaTimingFunctionEaseInEaseOut//淡入淡出,结合以上两者
kCAMediaTimingFunctionDefault//默认效果
delegate,代理。设置代理以后就会执行代理方法啦。

-(void)animationDidStart:(CAAnimation *)anim;

-(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag;

一个是动画开始的代理,一个是动画结束的代理。

值得注意的是,结束代理中,有一个flag。他的意思是如果动画正常播放完成的话,flag为YES。如果没有播放完成或者被移除则返回NO。

removedOnCompletion,是否在播放完成后移除。这是一个非常重要的属性,有的时候我们希望动画播放完成,但是保留最终的播放效果是,这个属性一定要改为NO,否则无效。

遵循着 CAMediaTiming 协议,所以他自然也有 durationbeginTime等一些属性。
beginTime,动画的开始时间,准确的说应该叫滞后时间。就是当你将动画加载layer中后滞后多长时间开始播放。

/* The begin time of the object, in relation to its parent object, if

这个属性很重要,我想要着重讲一下。上面是beginTime属性的注释。从中我们能够看出,这个beginTime是与父对象有关的。
由于CALayer和CAAnimation都遵循CAMediaTiming协议,所以那他都可以作为我们animation对象的父对象
duration,是动画的持续时间。简单的概念我就一笔带过了吧,同样的还有repeatCountautoreverses (自动逆转)。这些都是一些基本属性,基本看单词就知道用途了。
speed,这个我也要说一下,他表示的是当前对象的时间流速。简单来说,如果speed是2,duration是3,那么经过1.5秒,我的动画已经播放完成了。s = v * t,s就相当于已经播放的动画,也就是长度为3个单位的动画,v相当于每秒播放多少动画,即每秒播放两个单位的动画,所以1.5秒后动画其实就播放完成了。

相关文章

网友评论

      本文标题:iOS知识点(14)核心动画Core Animation

      本文链接:https://www.haomeiwen.com/subject/ucynixtx.html