首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CATransition是如何工作的?

CATransition是如何工作的?
EN

Stack Overflow用户
提问于 2010-02-10 08:56:57
回答 1查看 2K关注 0票数 8

CATransition是非常不寻常的。考虑下面的代码。

代码语言:javascript
复制
CATransition* trans=[CATransition animation];
trans.duration=0.5;
trans.type=kCATransitionFade;
[self.holdingView.layer addAnimation:trans forKey:nil];
self.loadingView.hidden=YES;
self.displayView.hidden=NO;

请注意,我没有告诉转换我想要显示displayView而不是loadingView,因此视图必须以某种方式访问转换本身。有没有人能更详细地解释一下这是如何工作的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-10 13:23:49

当您将过渡添加为动画时,将开始一个隐式CATransaction。从那时起,所有对图层属性的修改都将是动画效果,而不是立即应用。CATransition执行此动画的方式是在图层属性更改之前拍摄视图的快照,以及图层属性更改后视图外观的快照。然后它使用一个过滤器(在Mac上这是核心图像,但在iPhone上我猜这只是一个硬编码的数学)来随着时间的推移在这两个图像之间迭代。

这是Core Animation的一个关键特性。你的绘图逻辑通常不需要处理动画。你得到了一个图形环境,你画进去,你就完成了。该系统处理随着时间的推移将其与其他图像合成(或在空间中旋转,或其他任何方式)。因此,在改变隐藏状态的情况下,初始状态完全合成的图像与最终状态合成图像混合。在GPU上运行速度非常快,无论你对视图做了什么更改都无关紧要。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2233692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档