CATransaction / 动画交割
-
作用
:一次性将针对图层树/layer tree
的修改提交至绘图树/render tree
。任何动画模型都会被交给交割模型统一提交
。 -
隐式交割
:不创建交割对象,直接修改图层树
中的模型。系统会隐式创建交割对象,收集修改所产生的动画模型,并在下次运行循环时执行动画。 - 对于
同视图绑定的图层
来说,交割对象只在UIView
的animation block
中开启动画效果
。 -
显式交割
:手动开启一个交割对象,统一配置动画模型的各项,并向其发送begin
和commit
消息。例如,利用显式交割暂时关闭隐式动画效果:
[CATransaction begin];
[CATransaction setDisableActions:YES];
/**
修改layer的属性(隐式动画)
*/
[CATransaction commit];
- 通过
setAnimationDuration
和setAnimationTimingFunction:
方法,统一设置本次提交的所有动画对象的时长
和计时函数
。注意,如果动画模型上的相应属性已经被单独设置
,`不会被覆盖。