我有这个小 View V
v: UICrazyView
它有各种各样的动画,经常运行,并且遵循各种烦人的状态和输入。
现在最重要的是,有时整个事情只是隐藏起来
var slideAwaySomePanel: Bool {
didSet {
.. do many other things
v.isHidden = slideAwaySomePanel
}
}
它可能会被隐藏一分钟、一个小时、永远或永远不会。
我想到了,当 V 被隐藏时……动画还在运行吗?
他们仍然使用大量电池/性能吗?
我正要覆盖 isHidden
并开始编写一大堆脆弱的 PITA 代码,当 isHidden
被切换时,它们会知道该怎么做,但这可能毫无意义。
我想知道
当您isHidden
时,是否对正在进行的动画进行所有计算(甚至绘图?)继续?你还在用电池吗?我们是否应该在 isHidden
期间小心地停止一切以节省电池/性能。或者,isHidden 是否会停止一切?还是它仍然在做计时器和曲线,但在绘图上不浪费任何力量?
当你进入 isHidden 时,所有的计时器等是否真的“暂停”?如果你有一个无休止的重复动画,或者,一个 10 秒的淡入淡出等,它是否“保持”在一个确切的位置,并在你没有 isHidden 时继续?或者会发生什么?
简而言之,当 isHidden 生效时,我们是否应该小心而乏味地停止手动动画?还是没有意义?
(在我看来,这很像在 cg 中,当对象被遮挡或超出截锥体时,您要么有动画或其他物理,要么没有动画。因此,游戏引擎只需切换到确切地决定这种行为“当我离开屏幕时是否继续?”)
我很确定,即使我没有引用,隐藏 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://ogeek.cn/) | Powered by Discuz! X3.4 |