KeyPath: 决定基础动画的类型
position:改变位置
opacity:改变透明度
transform.scale:等比例缩放
fromValue:动画的起始状态值
autoreverse:当动画执行到toValue指定的状态是从toValue的状态还是直接跳到fromValue的状态再执行一遍
fileMode:fillMode的作用就是决定当前对象是过了非active时间段的行为,非active时间段是指动画开始之前以及动画结束之后。如果是一个动画CAAninmation,则需要将其removedOnCompletion置为NO,不然fillMode不起作用
kCAFillModeRemoved:是个默认值,当动画开始前和动画结束后,动画对Layer都没有影响,动画结束后,layer会恢复到之前的状态
kCAFillModeForwards 当动画结束后,layer会一直保持动画的最后状态
kCAFillModebBackwards:在动画开始前,只要将动画加入一个Layer,layer便立即进入动画的初始状态,因为有可能出现fromValue不会目前layer的初始状态的情况,如果fromValue就是Layer当前的状态,这个参数就没太大的意义
kCAFillModeBoth 动画加入后开始之前,layer便处于动画的初始状态,动画结束后Layer保持动画最后的状态
KVO模式
[self.imageT setValue:@(0.5) forKey:@"transform.scale"];
key的值可参照官方文档给的属性来写,注意:不要乱写属性,也许会出现迷之BUG
PS 核心动画只作用在layer,核心动画看到的都是假象,并没有改变UIView的真是位置
如果不与用户进行交互可以用核心动画(位置没变,点击不了相应的区域),与用户交互用UIView动画
网友评论