属性动画->通过改变图层或者视图上面的属性值(支持动画的属性)产生的动画
属性动画的常用方法属性:
1、初始化+(instancetype)animationWithKeyPath:(nullableNSString *)path
path需要产生动画的属性
如:中心点->移动
2、keyPath描述动画的属性
可以改变属性的动画:
transform.scale =比例转换
transform.scale.x
transform.scale.y
transform.rotation.z
opacity =透明度
zPosition
backgroundColor背景颜色
cornerRadius圆角
borderWidth边框的宽度
bounds
contents内容
contentsRect
frame
hidden
masksToBounds
opacity
position
shadowColor
shadowOffset
shadowOpacity
shadowRadius
基础动画:CABasicAnimation
介绍:通过改变某个属性的值到某个值->只能设置两个值->产生的动画
fromValue开始值如果不设置不会返回到初始位置
toValue结束值
byValue通过哪个值
核心动画:CAAnimation是所有动画的父类
1、CAMediaTiming媒体事件类协议核心动画关于时间类的控制是遵守了CAMediaTiming中的协议内容
(1)beginTime动画开始的时间默认为0
(2)duration动画的持续时间默认为0持续时间受速度的影响
实际的动画完成时间=持续时间/速度
(3)speed动画播放的速度默认为1速度设置成0可以暂停动画
speed2秒duration60秒动画真正播放完成的时间30秒
(4)timeOffset动画播放时间的偏移量
(5)repeatCount动画的循环次数默认是0只播放一次
repeatDuration动画循环的持续时间只能设置其中的一个属性
(6)autoreverses是否以动画的形式返回到播放之前的状态
(7)fillMode设置当前对象在非活动时间段的状态
要想fillMode有效需设置removedOnCompletion =NO
kCAFillModeForwards当动画结束后,layer会一直保持着动画最后的状态
kCAFillModeBackwards立即进入动画的初始状态并等待动画开始
kCAFillModeBoth动画加入后开始之前layer处于动画初始状态动画结束后layer保持动画最后的状态
kCAFillModeRemoved默认值动画结束后layer会恢复到之前的状态
2、CAAnimation动画属性方法介绍
(1)初始化方法animation
(2)timingFunction速度控制类控制动画运行的节奏
functionWithName:初始化
kCAMediaTimingFunctionLinear匀速
kCAMediaTimingFunctionEaseIn慢进快出
kCAMediaTimingFunctionEaseOut 快进慢出
kCAMediaTimingFunctionEaseInEaseOut慢进慢出中间加速
kCAMediaTimingFunctionDefault 默认
(3)delegate
(4)removedOnCompletion动画完成的时候是否移除动画效果
(5)代理方法
- (void)animationDidStart:(CAAnimation *)anim
- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag