CATransaction 和 CAAnimation 有啥区别?

Posted

技术标签:

【中文标题】CATransaction 和 CAAnimation 有啥区别?【英文标题】:What's the difference between CATransaction and CAAnimation?CATransaction 和 CAAnimation 有什么区别? 【发布时间】:2011-10-05 02:52:27 【问题描述】:

可能重复了一些问题,但我在这里找不到它们。

【问题讨论】:

【参考方案1】:
    CAAnimation 是一个使用 CAMediaTiming 协议的抽象超类,可以调节时间,包括持续时间、速度、重复;也使用 CAAction 协议,以响应动作的方式显示动画。

    CATransaction是CAAnimation的派生类,可以同时修改多个图层的属性。 它有两种交易类型:

    一个。 显式事务,显式调用“begin”,“commit”提交动画,重置时长。事务可以嵌套;

    b. 隐式交易。除了显式事务,对CALayer属性的任何修改都是隐式事务,所以事务会在run-loop中提交。

希望对你有帮助。

【讨论】:

CATransaction 实际上是 NSObject 的子类。【参考方案2】:

有几个很好的链接可以理解差异,

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreAnimation_guide/Articles/Transactions.html

http://zearfoss.wordpress.com/2011/02/24/core-animation-catransaction-protip/

【讨论】:

以上是关于CATransaction 和 CAAnimation 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

CATransaction:如何取消?

CATransaction 完成块永远不会触发

CATransaction 动画问题

CATransaction 完成块成功或失败

我可以取消 CATransaction 完成块吗?

iOS 在调用完成块之前会在 viewDidDisappear 之后等待 CATransaction