2011-09-09 72 views
0

我在根UIView中顯示大量的UIViews。 (我知道這不是一個好習慣)。子視圖包括使用Quartz繪製一些行的UIImageViews,UILabels和自定義UIViews。在生成所有視圖後,我將根視圖添加到UISCrollView中以顯示它們。問題是,所有圖像都會立即顯示,但標籤中的文本和我在drawRect方法中繪製的線條需要很長時間才能顯示。如果我縮放滾動視圖,它們都會立即顯示。有什麼問題?謝謝。UIView需要很長時間才能顯示

+0

顯示您正在使用的代碼。 – WrightsCS

回答

4

很難說沒有看到你的代碼,但聽起來像你的應用程序的東西。 iOS可以處理一個子視圖的數量而不會窒息或口吃。而且所有的東西都是單線程的 - 事實上,據我所知,所有的渲染都發生在同一個運行循環中(CATiledLayer -backed視圖是我能想到的唯一例外)。所以即使渲染陷入困境,我也會期待一段很長的停頓,然後一切顯示出來。不是你描述的零碎結果。

您是以編程方式或從筆尖添加視圖嗎?一切都在同一個筆尖,還是一些東西在他們自己的獨立筆尖?你的UIViewController情況是什麼樣子的?

試着在顯示較晚的東西中彈出一些日誌記錄。他們的-drawRect:是否真的被叫得很晚,還是被其他所有事情調用,並被別的東西遮擋了?試着開始一個沒有任何內容的新的乾淨的應用程序,並將你的每個子視圖放在那裏看看它們是如何獨立執行的?請特別注意您使用GCD,線程或preform:AfterDelay:類型調用的任何地方。

如果所有的失敗,作爲示例項目發佈,所以我們可以真正調試你所做的。

+0

+1的方法... – tipycalFlow

+0

...和+1的多個建議。但是對於Eric Wong:我們需要看到你的代碼是確定的。 – Sum

+0

今天我發現了一個'UIButton','UILabel'或者另一個包含文本的控件,如果其上使用的字體在項目中不存在,則需要很長時間才能加載。我從另一個項目導入了一個自定義控件,Xcode試圖使用它的字體,儘管它在我當前的項目中不存在。字體甚至顯示在屬性檢查器中。沒有任何警告或錯誤消息。果然,在我改變字體之後,性能還是很好的。 – Alexander

相關問題