众所周知,CATransaction 是核心动画类中的事务类,负责将图层树的修改作为原子更新到渲染树.其分为隐式事务和显式事务.我们平时所做的针对layer层的操作都是隐式事务,
如self.view.layer.backgroundColor = [UIColorredColor].CGColor;
显式事务为运用begin ,commit方法创建使用.显式事务在同时设置多个图层的属性的时候(例如当布局多个图层的时候),暂时的禁用图层的行为,或者暂时修改动画的时间的时候非常有用 .
而[CATransaction flush]的使用则是对事务的处理安排.文档是这样解释flush方法的
/* Commits any extant implicit transaction. Will delay the actual commit
* until any nested explicit transactions have completed. */
翻译过来就是:提交任何现存隐式事务,直到所有嵌套的显式事务完成提交实际效果,其本质作用是对事务的处理安排..这可以在lldb调试中方便调用.