什么是核心动画
官网释义:Render, compose, and animate visual elements.
可以渲染,撰写,和动画视觉元素
也就是一组功能强大、效果华丽的动画API
核心动画有些什么东西
先来看张图

emmmmmmm.......英语的有点复杂,看不懂,换一张吧

还是看不懂。。。。
没关系,不急,我们从头往下看
-
CAMediaTiming
官网释义:
Methods that model a hierarchical timing system, allowing objects to map time between their parent and local time
这个东西翻译出来我也不知道什么东西,不过CAMediaTiming是个协议,在这个协议中定义了时间、速度、重复次数等等
属性 | 作用 |
---|---|
beginTime | 指定接收方相对于其父对象(如果适用)的开始时间 |
duration | 动画的持续时间 |
speed | 动画速率,决定动画时间的倍率。当speed为2时,动画时间为设置的duration的1/2 |
timeOffset | 动画时间偏移量。比如设置动画时长为3秒,当设置timeOffset为1.5时,当前动画会从中间位置开始,并在到达指定位置时,走完之前跳过的前半段动画 |
repeatCount | 动画的重复次数 |
repeatDuration | 动画的重复时间 |
autoreverses | 动画由初始值到最终值后,是否反过来回到初始值的动画。如果设置为YES,就意味着动画完成后会以动画的形式回到初始值 |
fillMode | 决定当前对象在非动画时间段的行为,官网释义:确定接收者的演示文稿是否在其活动持续时间完成后被冻结或删除。 |
-
CAAnimation
官网释义:
The abstract superclass for Core Animation animations
核心动画的抽象父类,是所有动画对象的父类,实现CAMediaTiming协议,负责控制动画的时间、速度和时间曲线等等,是一个抽象类,不能直接使用。除了CAMediaTiming协议中的方法,还增加了CAAnimationDelegate的代理属性等
属性 | 作用 |
---|---|
timingFunction | 控制动画的节奏。点开框架查看有kCAMediaTimingFunctionLinear (匀速),kCAMediaTimingFunctionEaseIn (慢进快出),kCAMediaTimingFunctionEaseOut (快进慢出),kCAMediaTimingFunctionEaseInEaseOut (慢进慢出,中间加速),kCAMediaTimingFunctionDefault (默认),也可通过自定义创建CAMediaTimingFunction |
delegate | 代理 |
removedOnCompletion | 确定完成后动画是否从目标图层的动画中删除。默认为YES,也就是动画执行完毕后从图层上移除,恢复到执行前的状态,如果设置为NO,并且设置fillMode为kCAFillModeForwards,则保持动画执行后的状态 |
接下来再往下
-
CAPropertyAnimation
官网释义:
An abstract subclass of CAAnimation for creating animations that manipulate the value of layer properties
CAAnimation的一个抽象子类,用于创建操纵图层属性值的动画。也就是针对对象的可动画属性进行效果的设置
属性 | 作用 |
---|---|
keyPath | 指定接收者动画的关键路径 |
additive | 属性动画是否以当前动画效果为基础,默认为NO。当为YES时,动画指定的值将被添加到当前的动画上 |
cumulative | “累积”属性影响重复动画如何产生结果。 如果为true,则动画的当前值是上一个循环周期结束时的值,加上当前重复周期的值。 如果为false,则该值只是为当前重复循环计算的值。 默认为NO。简言之就是当前动画是否为累加的效果 |
valueFunction | 官网释义:An optional value function that is applied to interpolated values,大意就是可以通过设置该属性来设置插入值,如按x轴的输入值(弧度)旋转的值函数等等 |
-
CABasicAnimation
官网释义:
An object that provides basic, single-keyframe animation capabilities for a layer property
为图层属性提供基本的单关键帧动画功能的对象。也就是通过keyPath对应属性进行控制,需要设置fromValue以及toValue
属性 | 作用 |
---|---|
fromValue | keyPath相应属性的初始值 |
toValue | keyPath相应属性的结束值 |
byValue | 在不设置toValue时,toValue = fromValue + byValue,也就是在当前的位置上增加多少 |
-
CASpringAnimation
官网释义:
An animation that applies a spring-like force to a layer's properties
一种将弹簧般的力应用于图层属性的动画。也就是带有初始速度以及阻尼指数等物理参数的属性动画
下面属性介绍因为一些属性的特殊性,这里打个比方,这个动画也就是在不光滑的地面上有一个弹簧拴着一个球
属性 | 作用 |
---|---|
mass | 官网释义:The mass of the object attached to the end of the spring 附着在弹簧末端的物体的质量 |
stiffness | 官网释义:The spring stiffness coefficient 弹簧的刚度系数 |
damping | 官网释义:Defines how the spring’s motion should be damped due to the forces of friction 定义弹簧的运动如何由于摩擦力而被阻尼。 |
initialVelocity | 官网释义:The initial velocity of the object attached to the spring 附着在弹簧上的物体的初始速度 |
settlingDuration | 官网释义:The estimated duration required for the spring system to be considered at rest. 结算时间,根据上述参数计算出的预计时间,相对于你设置的时间,这个时间比较准确 |
这边看完是不是感叹当初物理没有好好学。。。继续:
-
CAKeyframeAnimation
官网释义:
An object that provides keyframe animation capabilities for a layer object
为图层对象提供关键帧动画功能的对象
重头戏来了,平时老听到别人说关键帧动画,一直不知道啥玩意儿,来这里给你慢慢看:
属性 | 作用 |
---|---|
values | 指定用于动画的关键帧值的对象数组 |
path | 关键帧路径,动画进行的要素,优先级比values高,但是只对CALayer的anchorPoint和position起作用 |
keyTimes | NSNumber对象的可选数组,用于定义应用给定关键帧段的时间。也就是每一帧对应的时间,如果不设置,则各关键帧平分设定时间 |
timingFunctions | CAMediaTimingFunction对象的可选数组,用于定义每个关键帧段的动画节奏 |
calculationMode | 指定接收器如何计算中间关键帧值。框架注释翻译为计算模式,可以为'线性','离散'等, 当设置为“paced”或“cubicPaced”时,动画的“keyTimes”和“timingFunctions”属性将被忽略并隐式计算 |
tensionValues | 定义曲线紧密度的NSNumber对象数组,动画张力的控制 |
continuityValues | 一组NSNumber对象,用于定义时间曲线角点的清晰度,动画连续性控制 |
biasValues | 一组NSNumber对象,用于定义曲线相对于控制点的位置。动画偏差率控制 |
rotationMode | 确定沿着路径动画的物体是否旋转以匹配路径切线。系统提供“auto”和“autoReverse”两种,默认为nil。 未提供路径对象时,将此属性设置为非零值的效果未定义。 `autoReverse'旋转以匹配切线加180度 |
-
CATransition
官方释义:
An object that provides an animated transition between a layer's states.
提供图层状态之间动画转换的对象。即转场动画
属性 | 作用 |
---|---|
type | 转场动画类型 |
subtype | 转场动画方向 |
startProgress与endProgress | 进入到开始和结束执行过渡的进度。 合法值是[0,1]范围内的数字。 endProgress必须大于或等于startProgress。 默认值分别为0和1 |
终于到最后一个了
-
CAAnimationGroup
官网释义:
An object that allows multiple animations to be grouped and run concurrently
允许将多个动画分组并同时运行的对象
属性 | 作用 |
---|---|
animations | 所有动画效果元素的数组 |
干货完毕,下面附上demo:
CABasicAnimation
剩余其他动画的demo会在一个月之内更新上,不要着急哈哈哈
网友评论