我正在用OpenGL ES視圖製作iOS應用程序。在3D視圖的頂部,我使用Cocoa Touch繪製各種GUI位。高CPU負載延遲UIView重繪(iOS)
只要幀率良好,此功能就可以正常工作。但是,當CPU負載變高(GLES視圖下降到20英里FPS)時,看起來下一個UIKit顯示週期正在推進。
具體來說,我試圖顯示一個工具提示視圖,基於各種UIView子類。當顯示它時,我更新工具提示標籤文本並調整其背景大小,然後將主要UIView的隱藏設置爲NO,並調用setNeedsDisplay和setNeedsLayout。
當幀率較低時(即CPU負載較高),下一個顯示週期似乎無限期地向前推進。但是,當CPU負載下降時,立即顯示視圖。
有沒有什麼辦法可以在我的3D引擎重繪之間在UIKit中煽動繪製循環?任何其他想法?
所有邏輯和一個線拉拽運行(這是他們在我的應用程序做)的罰款。要點是,CPU負載過高似乎會無限期地推動UIKit重繪,儘管我絕對不會阻止主線程。當CPU負載很高時,UIKit似乎有意跳過重繪;這是我想要在特定情況下防止的。 – Simplex 2011-01-22 14:50:14