【问题标题】:Does UIImageView Animation Run When Not OnscreenUIImageView 动画不在屏幕上时是否运行
【发布时间】:2013-02-05 22:41:44
【问题描述】:
在我的应用程序中,我使用了几个 UIImageView 来制作图像动画。对于这些 UIImageViews,我调用 startAnimating 并无限期地循环动画。我的应用程序包含许多不同的视图,并且很多时候这些 UIImageViews 不在屏幕上。此外,我的应用程序在后台运行。我的问题是,如果对于这些 UIImageViews,我从不调用 stopAnimating,即使 UIImageViews 不在屏幕上(即它们的超级视图不在屏幕/隐藏或应用程序在后台),视图是否会继续动画并消耗处理能力?
提前致谢。
【问题讨论】:
标签:
objective-c
animation
uiimageview
background-process
【解决方案1】:
说实话我不确定,但我确实在苹果文档中找到了这个
隐藏视图
要在视觉上隐藏视图,您可以将其 hidden 属性设置为 YES
或将其 alpha 属性更改为 0.0。隐藏视图不接收
来自系统的触摸事件。但是,隐藏的视图确实参与了
与视图关联的自动调整大小和其他布局操作
层次结构。因此,隐藏视图通常是一种方便的替代方法
从视图层次结构中删除视图,特别是如果您打算
很快就会再次显示视图。
我通读了文档here,但实际上找不到任何东西来保证一个可靠的答案。我记得通过我不久前观看的斯坦福在线课程,根本没有绘制隐藏视图以保持处理能力。但是被跟踪(如上所述)。话虽如此,我通常认为Apple会以有效的方式处理此问题,但不确定。
如果您想要一个更明确的答案,您可以为一堆视图设置动画并使用工具跟踪它们以查看它们消耗了多少。