CoreAnimation混淆:CATransaction vs CATransition vs CAAnimationGroup?

nac*_*o4d 4 macos core-animation catransition ios catransaction

我已经多次分别使用过这三个课程.

例如,当我想要将几个动画(即:CABasicAnimations等)同时发生时我首先想到的是CAAnimationGroup,当我想看到从一个状态到另一个状态的层更改时(即:出现,滑入等)我想到的CATransition.但同时CATransaction意味着分批执行动画(WTH?)

CATransactionCATransition似乎是不同的东西,但我通常看到CATransitions里面CATransactions?我已经多次阅读过这些文档,但它们从未被并排比较,以及它们应该用于什么时候.

如果有人可以指出他们的关系/用法是什么,那就太棒了:)

ser*_*gio 14

CATransaction并且CATransition确实是不同的东西...

似乎你理解中的缺失是关于CATransaction; 一旦你得到了,那么也许所有的碎片都会自己落到位.

CATransaction每次进行Core动画时,始终会创建A.

对图层的每次修改都是事务的一部分.CATransaction是Core Animation类,负责将多个层树修改批处理到渲染树的原子更新.

(来源)

如果您没有明确指定一个,那么CATransaction会为您创建一个隐式.

您可以创建一个显式事务(通过[CATransaction begin/commit])来调整动画的几个参数,例如是否应该使用默认动画,它们的长度等等.这些都在CATransaction参考中描述.

在同时设置多个图层的属性(例如,布置多个图层),暂时禁用图层操作或临时更改生成的隐含动画的持续时间时,显式事务特别有用.

因此,重新开始,CATransaction是运行核心动画动画的"大伞",无论是a CABasicAnimation,a CATransition还是组动画.它允许您设置一些影响动画/转换发生方式的常规参数,如果您不提供动画/转换,则使用默认(隐式)参数.

希望这可以帮助.