2010-10-25 79 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