我已经多次单独使用这三个类。
例如,当我想将多个动画(例如:CABasicAnimations等)分组以同时发生时,我首先想到了CAAnimationGroup
,当我想看到一个图层从一种状态变为另一种状态(即:出现,滑入等)时,我认为的CATransition
。
但是同时CATransaction
是要批量执行动画的(WTH?)CATransaction
和CATransition
似乎是不同的野兽,但我通常会在CATransitions
内看到CATransactions
吗?我已经阅读了好几次文档,但从未将它们并排比较以及应该何时/何地使用它们。
如果有人可以指出他们的关系/用法是很好的:)
最佳答案
CATransaction
和CATransition
确实是不同的野兽...
看来,您所了解的缺失点是关于CATransaction
;一旦掌握了这一点,那么也许所有的部分都会自己解决。
每当您执行Core动画时,总是会创建CATransaction
。
(source)
发生的情况是,如果您未明确指定一个,则将为您创建一个隐式的CATransaction
。
您可以创建一个显式事务(通过[CATransaction begin/commit]
)来调整动画的多个参数,例如是否应使用默认动画,使用多长时间等。这些都在CATransaction
引用中进行了描述。
因此,综上所述,CATransaction是运行核心动画的“大伞”,它是CABasicAnimation
,CATransition
或组动画。它允许您设置一些影响动画/过渡发生方式的常规参数,如果不提供该参数,则使用默认(隐式)参数。
希望这可以帮助。
关于ios - CoreAnimation混淆: CATransaction vs CATransition vs CAAnimationGroup?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14042755/