CoreAnimation confusion: CATransaction vs CATransition vs CAAnimationGroup?

http://stackoverflow.com/questions/14042755/coreanimation-confusion-catransaction-vs-catransition-vs-caanimationgroup

CATransaction and CATransition are indeed different beasts...

It seems that the missing bit in your understanding is about CATransaction; once you get that, then maybe all the pieces will fall into place by themselves.

CATransaction is always created every time you have a Core animation going on.

Every modification to a layer is part of a transaction. CATransaction is the Core Animation class responsible for batching multiple layer-tree modifications into atomic updates to the render tree.

(source)

What happens is that if you do not specify one explicitly, then an implicit CATransaction is created for you.

You can create an explicit transaction (by means of [CATransaction begin/commit]) to tune several parameters of an animation, like whether default animations should be used, how long they are etc. Those are all described in CATransaction reference.

Explicit transactions are particularly useful when setting the properties of many layers at the same time (for example, while laying out multiple layers), temporarily disabling layer actions, or temporarily changing the duration of resulting implied animations.

So, resuming it all, CATransaction is the "big umbrella" under which a core animation animation is run, wether it is a CABasicAnimation, a CATransition, or group animation. It allows you to set some general parameters affecting the way the animation/transition takes place and if you do not provide one, a default (implicit) one is used.

时间: 2024-11-01 09:54:14

CoreAnimation confusion: CATransaction vs CATransition vs CAAnimationGroup?的相关文章

iOS CoreAnimation 转场动画 CATransition

本文参考:http://www.cnblogs.com/kenshincui/p/3972100.html#autoid-3-0-0总结的: 效果: 转场动画就是从一个场景以动画的形式过渡到另一个场景.转场动画的使用一般分为以下几个步骤: 1.创建转场动画 CATransition 2.设置转场类型transtion.type.子类型transtion.subtype(可选)及其他属性 3.设置转场后的新视图并添加动画到图层 下表列出了常用的转场类型(注意私有API是苹果官方没有公开的动画类型,

CoreAnimation的使用小结

参考: http://www.cnblogs.com/wendingding/p/3801157.htmlhttp://www.cnblogs.com/wendingding/p/3802830.html 切记动画的执行,是必须要按你想点击后操作开始执行的,如果是想push,那么就在其前做好动画,如果是要点击事件执行动画,就要在点击事件中添加要达到的效果. 执行动画,就是将要修改的属性封装到动画中去执行 CAAnimation是根据CALayer进行处理操作的: 当[layer addAnima

解析 iOS 动画原理与实现

这篇文章不会教大家如何实现一个具体的动画效果,我会从动画的本质出发,来说说 iOS 动画的原理与实现方式. 什么是动画 动画,顾名思义,就是能“动”的画.人的眼睛对图像有短暂的记忆效应,所以当眼睛看到多张图片连续快速的切换时,就会被认为是一段连续播放的动画了. 比如,中国古代的“走马灯”,就是用的这个原理.有些人还会在一个本子每页上手绘一些漫画,当快速翻页的时候,也会看到动画的效果,比如: 图片来自网络 计算机动画的实现方式 动画是由一张张图片组成的,在计算机中,我们称每一张图片为 一帧画面 .

iOS_40_核心动画

核心动画之CATransition转场动画 终于效果图: 核心动画之CAKeyFrameAnimation,图标抖动效果 终于效果图: 核心动画之CAAnimationGroup(动画组) 终于效果图: 核心动画之CAKeyFrameAnimationGroup(关键帧动画) 终于效果图: 核心动画之CABasicAnimation(基本动画) 终于效果图: UIView封装的动画,NSObject已经遵守了CAAnimationDelegate 终于效果图: 核心动画之幸运转盘 终于效果图:

IOS动画讲解

CAMediaTiming是一个协议(protocol),CAAnimation是所有动画类的父类,但是它不能直接使用,应该使用它的子类. 继承关系: CoreAnmiation 核心动画 简写CA                                                                                                         CoreAnimation 中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做

iOS动画详解

常见的iOS对动画的操作分为两类: CALayer层的操作 UIView的操作 二者有何区别 UIView里面包含有一个CALayer层 UIView之所以能够在屏幕上显示出来,完全因为其内部拥有一个CALayer层 CALayer层的操作更底层更轻量级.性能更高. UIView动画执行完毕之后不会反弹,而CALayer动画改变layer的状态位置,出现假象的改变,其实实际位置并没有改变 开发时如何选择二者: 每个UIView的操作其实是对CALayer层的封装,比较简单,优先选择UIView动

核心动画笔记

核心动画(Core Animation) 一.Core animation简单介绍 1.Core Animation,中文翻译为核心动画,是一套包含图形绘制,投影,动画的Objective–C类集合.它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代码就可以实现非常强大的功能.Core Animation自身并不是一个绘图系统.它只是一个负责在硬件上合成和操纵应用内容的基础构件 2.Core Animation是跨平台的,可以用在Mac

iOS动画解析

iOS引入动画效果可以使我们的软件得到更好的用户体验,因此动画的深入研究无疑对于开发者一个很好的加分项. 常见的iOS对动画的操作分为两类: CALayer层的操作 UIView的操作 二者有何区别 UIView里面包含有一个CALayer层 UIView之所以能够在屏幕上显示出来,完全因为其内部拥有一个CALayer层 CALayer层的操作更底层更轻量级.性能更高. UIView动画执行完毕之后不会反弹,而CALayer动画改变layer的状态位置,出现假象的改变,其实实际位置并没有改变 开

iOS:核心动画具体的类和协议的介绍

核心动画类:CAAnimation.CAPropertyAnimation.CABasicAnimation.CAKeyframeAnimation.CATransition.CAAnimationGroup 父类:CAAnimation(抽象类) CAAnimation直接子类:CAPropertyAnimation(抽象类),CATransition(转场动画),CAAnimationGroup(动画数组) CAPropertyAnimation直接子类:CABasicAnimation(基