代码之家  ›  专栏  ›  技术社区  ›  Fattie

当视图隐藏时动画会使用果汁吗?

  •  0
  • Fattie  · 技术社区  · 6 年前

    我有一个小视图V

    v: UICrazyView
    

    除此之外,有时整件事都被隐藏起来了

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

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

    我突然想到,当V隐藏起来。。。动画还在运行吗?

    我正要超越 isHidden 开始编写大量脆弱的PITA代码,这些代码知道该怎么做 伊希登

    我想知道

    1. 伊希登 ,做所有的计算(甚至绘图?) 对于正在进行的动画?你还在用电池吗?我们应该小心地停止一切吗 节省电池/性能。或者,我会停止一切吗?或者它仍然可以做计时器和曲线,但不会浪费任何绘图的能量?

    2. 做所有的计时器等等 “暂停”

    (在我看来,这很像在cg中,当物体被遮挡或脱离物体时,你要么有动画,要么没有其他物理过程。出于这个原因,游戏引擎只是有一个开关来决定“当我离开屏幕时是否继续?”

    0 回复  |  直到 6 年前
        1
  •  2
  •   clemens    6 年前

    我很确定,即使我没有参考资料,隐藏的视图并不是动画,因为核心动画在性能方面的实现非常有效。

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

    苹果给予 some nice examples