2013-02-17 20 views
1

我正在自定義一個類似於iOS中的照片應用程序的畫廊。我希望能夠在自定義圖庫中的各個照片之間進行滾動。我還預裝有可能很快被顯示的圖像(如果我向右滾動,我預裝即2個後面的圖像右側)在iOS的背景中加載800萬像素的照片

然而,圖像加載顯得那麼CPU消耗,它會干擾滾動。使滾動掛起一分鐘。

有沒有更好的方法來做到這一點? (我曾考慮保持較小的版本,每個屏幕的分辨率相匹配的圖片)

基本上我稱這種現象爲後臺線程:

UIImage *img = [UIImage imageWithContentsOfFile:path]; 

,然後我執行只是初始化一個主線程上的選擇已加載圖像的現有ImageView。

+0

我注意到在使用'imageWithContentsOfFile'在前景隊列中加載大圖像時,在我的用戶界面中遇到了輕微的麻煩,並且通過將其移動到背景隊列,它使得滾動變得如絲般光滑。如果你在滾動過程中看到中斷,那麼還有其他事情正在發生(你是否意外地同步調度?)。你必須共享更多的代碼,也許整個「調度'imageWithContentsOfFile'到後臺隊列,然後調用UI更新回到主隊列」例程。 – Rob 2013-02-17 15:56:07

+0

是的,它不是同步的。我解決了我的問題(下面的答案)。謝謝你的時間。 – bendahmon 2013-02-17 19:17:16

回答

1

我想通了一個辦法。

我需要在後臺線程上渲染圖像以確保它已加載。否則,直到我決定在主線程中渲染它纔會實際加載。這導致加載時主線程阻塞。