【发布时间】:2011-01-22 14:29:07
【问题描述】:
我正在制作一个带有 OpenGL ES 视图的 iOS 应用程序。在 3D 视图之上,我使用 Cocoa Touch 绘制了各种 GUI 位。
只要帧率良好,它就可以正常工作。然而,当 CPU 负载变高时(GLES 视图下降到 20-ish FPS),似乎正在推进下一个 UIKit 显示周期。
具体来说,我正在尝试基于各种 UIView 子类显示工具提示视图。当需要显示它时,我更新工具提示标签文本并调整其背景大小,然后将主 UIView 的 hidden 设置为 NO 并调用 setNeedsDisplay 和 setNeedsLayout。
当帧率低(即 CPU 负载高)时,下一个显示周期似乎无限期地向前推进。但是当 CPU 负载下降时,视图会按预期显示。
有什么方法可以在我的 3D 引擎重绘之间在 UIKit 中发起一个绘制周期?还有其他想法吗?
【问题讨论】: