我已经多次单独使用这三个类。

例如,当我想将多个动画(例如:CABasicAnimations等)分组以同时发生时,我首先想到了CAAnimationGroup,当我想看到一个图层从一种状态变为另一种状态(即:出现,滑入等)时,我认为的CATransition
但是同时CATransaction是要批量执行动画的(WTH?)
CATransactionCATransition似乎是不同的野兽,但我通常会在CATransitions内看到CATransactions吗?我已经阅读了好几次文档,但从未将它们并排比较以及应该何时/何地使用它们。

如果有人可以指出他们的关系/用法是很好的:)

最佳答案

CATransactionCATransition确实是不同的野兽...

看来,您所了解的缺失点是关于CATransaction;一旦掌握了这一点,那么也许所有的部分都会自己解决。

每当您执行Core动画时,总是会创建CATransaction



(source)

发生的情况是,如果您未明确指定一个,则将为您创建一个隐式的CATransaction

您可以创建一个显式事务(通过[CATransaction begin/commit])来调整动画的多个参数,例如是否应使用默认动画,使用多长时间等。这些都在CATransaction引用中进行了描述。



因此,综上所述,CATransaction是运行核心动画的“大伞”,它是CABasicAnimationCATransition或组动画。它允许您设置一些影响动画/过渡发生方式的常规参数,如果不提供该参数,则使用默认(隐式)参数。

希望这可以帮助。

关于ios - CoreAnimation混淆: CATransaction vs CATransition vs CAAnimationGroup?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14042755/

10-10 20:47