OGeek|极客世界-中国程序员成长平台

标题: ios - 隐藏 View 时动画是否使用果汁? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 05:36
标题: ios - 隐藏 View 时动画是否使用果汁?

我有这个小 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 时继续?或者会发生什么?

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

(在我看来,这很像在 cg 中,当对象被遮挡或超出截锥体时,您要么有动画或其他物理,要么没有动画。因此,游戏引擎只需切换到确切地决定这种行为“当我离开屏幕时是否继续?”)



Best Answer-推荐答案


我很确定,即使我没有引用,隐藏 View 也没有动画,因为核心动画在性能方面非常有效地实现。

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

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

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






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4