关于动画的一些基础知识

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


关于动画的一些基础知识_第1张图片

PS 核心动画只作用在layer,核心动画看到的都是假象,并没有改变UIView的真是位置

如果不与用户进行交互可以用核心动画(位置没变,点击不了相应的区域),与用户交互用UIView动画

你可能感兴趣的:(关于动画的一些基础知识)