gpt4 book ai didi

ios - 嵌套 CATransaction 的行为?

转载 作者:行者123 更新时间:2023-11-29 00:41:44 25 4
gpt4 key购买 nike

下面的代码将在提交后立即更新backgroundColor

[CATransaction begin];
self.view.backgroundColor = [UIColor redColor];
[CATransaction commit];

sleep(5);

但是使用嵌套的显式CATransactions,屏幕仅在最外层事务提交时更新。

[CATransaction begin];
[CATransaction begin];
self.view.backgroundColor = [UIColor redColor];
[CATransaction commit];
sleep(5);
[CATransaction commit];

所以这使得它非常奇怪,因为我们知道 runloop 会在每个循环中创建一个最外层的隐式事务。为什么当显式事务提交时,这个隐式事务不被视为最外层事务?

最佳答案

总是有一个隐式交易。也可以有显式事务。在您的所有代码运行完毕之前,隐式事务不会提交。如果您有一个显式事务(begincommit),那么它会在遇到 commit 时提交。

嵌套显式事务的目的只是允许您为动画的不同部分提供不同的参数(例如持续时间);直到最外层的 commit 才会发生实际的提交。阅读the docs :

Only after you commit the changes for the outermost transaction does Core Animation begin the associated animations

关于ios - 嵌套 CATransaction 的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39323399/

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