CATransaction / 动画交割

401 阅读1分钟

CATransaction / 动画交割 作用:一次性将针对图层树/layer tree的修改提交至绘图树/render tree。任何动画模型都会被交给交割模型统一提交。 隐式交割:不创建交割对象,直接修改图层树中的模型。系统会隐式创建交割对象,收集修改所产生的动画模型,并在下次运行循环时执行动画。 对于同视图绑定的图层来说,交割对象只在UIView的animation block中开启动画效果。 显式交割:手动开启一个交割对象,统一配置动画模型的各项,并向其发送begin和commit消息。例如,利用显式交割暂时关闭隐式动画效果:

[CATransaction begin];

[CATransaction setDisableActions:YES];
/**
 修改layer的属性(隐式动画)
 */
[CATransaction commit];

通过setAnimationDuration和setAnimationTimingFunction:方法,统一设置本次提交的所有动画对象的时长和计时函数。注意,如果动画模型上的相应属性已经被单独设置,不会被覆盖。