我有問題,我有一些非常大的UIScrollView和噸圖像加載在用戶滾動。圖像存儲在設備上,但是我從服務器接收信息要顯示在UIScrollView的特定部分上。當用戶滾動一下時,我需要在新的位置顯示圖像,因爲我無法在啓動時使用圖像繪製整個UIScrollView。對於背景我有一個相對較小的圖像,我在整個視圖中移動。但問題是,在該背景之上,我應該繪製大量的UIImage對象(大約300-400),這些對象不是特別的bih,而是分層的(一個圖像位於其他頂層)。在繪圖時阻止滾動不是一種選擇。準備有很多圖層的背景線程的UIImage
現在我試圖決定哪一種方法會適合我最好的:
添加所需的所有圖像的UIView在後臺線程,然後只需添加到UIView的滾動型的主線程(希望不會需要很長時間)。這裏當滾動某處時,我需要計算並創建帶有對象的新UIView,並將其放置在現有和可能的位置,以便在用戶繼續沿某個方向滾動時刪除具有所有對象和圖層的第一個UIView。
將圖像中的所有圖層與CoreGraphics相結合,並將它們呈現爲已確定圖層的對象。通過這種方式,我可以從滾動視圖中移除特定對象(圖像)。當用戶滾動時,我只是創建新對象並將它們添加爲以完整對象的形式查看,並且可以在用戶滾動到足夠的位置時刪除對象,而不是刪除整個視圖。這裏的問題是在主線程中向UIScrollView添加多個對象,但是當它們結合時它們不會超過15-20個對象。
我最關心的是性能和線程。正如我所說我不能阻止主線程(或者說讓用戶不會注意的時候不能這樣做),並且不能將圖像合併到我的圖形部門,因爲它們有很多變化,這些變化是在運行時決定的。這就是爲什麼我正在考慮一種在後臺線程上準備數據的方法,並且只是在主線程上快速添加數據,而不是在主線程上準備和添加它(這會阻止UI)。
每一個幫助將大大appriciated!
問候,
hris.to
請不要使用堆棧溢出通過鏈接來推廣你的網站;答案只應包括相關的代碼,而不是其他網站的鏈接。 – LittleBobbyTables
@LittleBobbyTables感謝您的領導!我一定不會再這樣做。 –