gpt4 book ai didi

ios - 隐藏 View 时动画是否使用汁液?

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:20:01 24 4
gpt4 key购买 nike

我有这个小 View V

v: UICrazyView

它有各种各样的动画,经常运行,并且跟随各种烦人的状态和输入。

现在最重要的是,有时整个事情只是隐藏起来

var slideAwaySomePanel: Bool {
didSet {
.. do many other things
v.isHidden = slideAwaySomePanel
}
}

它可能会隐藏一分钟、一个小时、永远或永远不会隐藏。

我突然想到,当 V 被隐藏时......动画还在运行吗?

他们是否仍然使用大量电池/性能?

我正要覆盖 isHidden 并开始编写大量脆弱的 PITA 代码,这些代码会知道在 isHidden 被切换时该怎么做,但也许这是毫无意义的。

我想知道

  1. 当您isHidden 时,为正在进行的动画进行所有计算(甚至绘图?)继续?你还在用电池吗?我们是否应该在 isHidden 期间小心地停止一切以节省电池/性能。或者,isHidden 是否会停止一切?还是它仍然执行计时器和曲线,但不会在绘图上浪费任何能量?

  2. 当您进入 isHidden 时,所有计时器等实际上是否“暂停”?如果你有一个无休止的重复动画,或者 10 秒的淡入淡出等等,它是否“保持”在一个确切的位置,并在你不隐藏时继续?或者会发生什么?

简而言之,当 isHidden 生效时,我们是否应该小心而乏味地停止手动动画?还是没有意义?

(我突然想到,这很像在 cg 中,当对象被遮挡或不在平截头体之外时,您可以执行或不执行动画或其他物理操作。出于这个原因,游戏引擎只需切换到准确决定“当我离开屏幕时是否继续前进?”)

最佳答案

我很确定,即使我没有引用,隐藏的 View 也不是动画的,因为 Core Animation 在性能方面的实现非常有效。

核心动画层和动画有自己的时钟。 The animation state is calculated from this time .当 View 不可见时,时钟继续运行。由于图层和动画对象都不会因隐藏 View 而被破坏,因此动画在重新出现后的状态与 View 未被隐藏时的状态完全相同。

Apple 给出 some nice examples如何修改某些用例的动画时间。

关于ios - 隐藏 View 时动画是否使用汁液?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57560537/

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