2012-05-13 54 views
2

我正在構建一個基於UITableView的Unity插件,該插件將由遊戲開發人員嵌入Unity應用程序中。我正在使用標準方法將可重複使用的單元出列,並且UITableViewCell包含簡單的UILabelUIImageViewUIImageView中的圖像通過異步請求加載。Sticky UITableView在Unity中滾動

當啓動插件作爲獨立的Objective-C應用程序時(特別是滾動效果不會有任何滯後),沒有任何可用性問題,但是當Unity內部存在隨機出現的「粘性」滾動問題時,即視圖滾動但沒有慣性。我一直無法確定導致這種行爲的確切行爲,但通常發生在我朝一個方向快速滾動,或者來回短時間移動時。當我將視圖向上或向下滾動時(觸發「反彈」效果,我猜這會導致一些硬刷新),該錯誤消失。

有一個類似的問題描述here。他們建議的修復方法是在Unity生成的AppController.mm文件中放入

#define USE_DISPLAY_LINK_IF_AVAILABLE 0 

。不幸的是,這種修復方法對於將整合我們的插件的遊戲開發者是不可行的,因爲它關閉了最快和最可靠的時序解決方案,並且需要回退到其他時序系統,這會導致遊戲本身滯後或錯過一部分觸摸和加速計事件。

我很可能會爲UITableViewCell重寫drawRect以減少渲染時間和內存使用量,如果失敗,請在OpenGL中編寫插件的一個版本。然而,我想知道是否有人有類似的問題,並且知道在Objective-C或Unity中更快速的修復,這是非破壞性的(就像上面描述的時間修正一樣)。非常感謝。

+0

igorraush我會對插件很感興趣...有沒有可用的回購站或網站? –

回答

3

我有同樣的麻煩,你所描述的。我已通過評論該行解決了它

//#define USE_DISPLAY_LINK_IF_AVAILABLE 0