gpt4 book ai didi

cocoa - CATransition 如何工作?

转载 作者:行者123 更新时间:2023-12-03 16:06:19 25 4
gpt4 key购买 nike

CATransition 非常不寻常。考虑以下代码。

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,因此 View 必须以某种方式访问​​过渡本身。谁能更详细地解释一下这是如何工作的?

最佳答案

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

这是 Core Animation 的一个关键特性。您的绘制逻辑通常不需要处理动画。您将获得一个图形上下文,然后在其中进行绘制,就完成了。系统随着时间的推移将其与其他图像合成(或在空间中旋转,或其他什么)。因此,在改变隐藏状态的情况下,初始状态完全合成图像与最终状态合成图像混合。在 GPU 上速度非常快,并且对 View 进行什么更改并不重要。

关于cocoa - CATransition 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2233692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com