2010-10-25 78 views
0

我有一个基于OpenGL的iPad项目。在一个视图中,我将对象渲染并浮在屏幕上。iPhone - 拖动UITableView停止在后台渲染OpenGL

当我用透明表格视图和自定义单元格在这个视图的顶部添加一个透明的UIView时,我可以看到表格视图和对象仍然呈现。

现在 - 当我去拖动表视图来滚动元素时,渲染暂停。只要我从拖放中释放,渲染就会继续。仅在拖动时触摸并不拖动表格视图才会导致渲染停止。

有没有人遇到过这个?这发生在模拟器和设备上。

我的想法:渲染OpenGL发生在由硬件决定的帧速率。拖动UITableView时,系统是否分配其所有资源以滚动表格。

希望至少有一些代码的答案!

非常感谢!

回答

2

拖动UIScrollView会进入只处理某些运行循环模式的模态循环。使用CFRunLoopAddTimer来指定您的计时器在哪个运行循环模式下运行。

+0

我在哪里/如何使用它? – Mark 2010-10-25 08:30:16

+0

这取决于您的应用程序如何安排OpenGL绘制调用。 'CFRunLoopTimer'是与'NSTimer'相当的CoreFoundation,使用起来并不困难。 – rpetrich 2010-10-25 19:27:53

+1

根据我的经验,OpenGL渲染器仍在被调用,但视图没有重绘。另外,在项目模板的代码中,定时器仅用于不支持CADisplayLink的设备(所有的iPad都是这样做的,对吗?)。但我没有答案。 :( – alltom 2010-10-25 20:54:39