UIView 在后台调用 drawRect

Posted

技术标签:

【中文标题】UIView 在后台调用 drawRect【英文标题】:UIView's drawRect Calls When Backgrounded 【发布时间】:2012-04-26 13:29:44 【问题描述】:

我正在开发一个多任务应用程序,该应用程序在被发送到后台后会继续运行一段时间。我注意到当应用程序在后台时,UIView 之一中的 drawRect 方法会不断被调用。这个 drawRect 方法负责在应用程序运行时更新用户界面。

这方面的最佳做法是什么?我不想浪费 CPU 周期来绘制用户看不到的东西。

【问题讨论】:

【参考方案1】:

也许这个问题的答案可能会对您有所帮助: Check if ios app is in background

检查应用程序是否在后台运行,如果是...不要绘制任何东西。

【讨论】:

感谢您的快速cmets。我也想过这个。事实上,我正在考虑使用[UIApplication sharedApplication].applicationState 来检查应用程序当前是否在后台,如果是,则从drawRect 方法返回而不做任何事情。还有其他最佳做法吗? 好吧,我想你也许可以检查有问题的视图是否可见。这样,如果应用程序处于活动状态但未显示视图(可能不需要在未显示的视图上绘制?)***.com/questions/2777438/…,您还可以节省 CPU 使用率

以上是关于UIView 在后台调用 drawRect的主要内容,如果未能解决你的问题,请参考以下文章

让 UIView drawRect 发生在后台线程中

在 SceneKit 中使用 GIFU 库播放 GIF 会导致应用程序 UI 冻结任何解决方案? UIView Animated 从后台线程调用

如何在drawRect中获取UIView大小

PushViewController 和 UIView 动画无效

即使应用程序处于后台,也可以为 UiView 设置动画

在后台线程上渲染新的 UIView 图层内容?