美文网首页iOS技术
CATransaction核心动画事务

CATransaction核心动画事务

作者: Scott丶Wang | 来源:发表于2017-09-06 10:38 被阅读212次

Overview

CATransaction是用于将多个图层树操作批量渲染的原子更新机制。 对图层树的每个修改都必须是事务的一部分。 支持嵌套事务。 核心动画支持两种类型的事务: 隐式事务和显式事务。

隐式事务
当在某一没有事务线程中对图层树进行了修改时,会自动创建隐式事务并在该线程的Runloop下一个迭代时自动提交隐式事务。

显式事务
[CATransaction begin];
// 对图层进行修改
[CATransaction commit];

CATransaction允许覆盖默认的动画属性,前提是这个属性是可动画的。 可以自定义持续时间,Timing,是否更改属性触发动画,并提供一个回调block,以便在完成事务组的所有动画时得到通知。
在事务期间,您可以临时获取一个递归自旋锁来管理属性原子性。
CATransaction支持嵌套事务。

下面的例子显示了如何在2秒的时间内淡出一个图层(命名为transitioning Layer)
同时缩放到它原始大小的三倍。 缩放动画在嵌套事务中,其持续时间为1秒。 
外部事务完成后,将transitioning Layer层从其父层移除。

let transitioningLayer = CALayer()
     
// Outer transaction animates `opacity` to 0 over 2 seconds
CATransaction.begin()
CATransaction.setAnimationDuration(2)
CATransaction.setCompletionBlock {
    transitioningLayer.removeFromSuperlayer()
}
    
transitioningLayer.opacity = 0
     
// Inner transaction animates scale to (3, 3, 3) over 1 second
CATransaction.begin()
CATransaction.setAnimationDuration(1)
     
transitioningLayer.transform = CATransform3DMakeScale(3, 3, 3)
     
CATransaction.commit() // Commits inner transaction
CATransaction.commit() // Commits outer transaction

相关文章

  • 2019-03-07

    核心动画 1.隐式动画 [CATransaction begin];//开启事务 [CATransaction ...

  • CATransaction核心动画事务

    Overview CATransaction是用于将多个图层树操作批量渲染的原子更新机制。 对图层树的每个修改都必...

  • 核心动画

    // CoreAnimationDemo // CATransaction事务动画(显示动画(开头和结尾)和隐式动...

  • 取消(关闭)隐式动画

    取消(关闭)隐式动画** 可以通过动画事务(CATransaction)关闭默认的隐式动画效果[CATransac...

  • iOS Core Animation(五)- 隐式动画

    CATransaction事务 动画执行的时间取决于当前事务的设置,动画类型取决于图层行为 begin 入栈([C...

  • iOS-CATransaction

    CATransaction 事务类,可以对多个layer的属性同时进行修改.它分隐式事务,和显式事务.区分隐式动画...

  • iOS CATransaction学习

    CATransaction 事务类,可以对多个layer的属性同时进行修改.它分隐式事务,和显式事务.区分隐式动画...

  • Core Animation小记(三)

    动画 1.隐式动画。没有制定任何动画的类型叫做隐式动画。事务,是通过CATransaction类来做管理,只能通过...

  • iOS动画事物(CATransaction)

    动画事物 CATransaction是 Core Animation 中的事务类,在iOS中的图层中,图层的每个改...

  • iOS的Tips

    修改CALayer隐式动画的时长 [CATransaction begin];[CATransaction set...

网友评论

    本文标题:CATransaction核心动画事务

    本文链接:https://www.haomeiwen.com/subject/nlymjxtx.html