2013-10-23 40 views
1

我有一個iOS應用程序,我正在處理可變大小的圖像,這些圖像包含在我從網上下載的鏈接中。圖像不需要存儲,所以我使用EGOImageView,這是一個UIImageView擴展,它在後臺緩存圖像,並且這些圖像位於UITableView中。所有這些對於低於1000x1000左右像素的圖像都能很好地工作,但是較大的圖像是一個問題。他們只是在後臺下載,但只需設置緩存的圖像,因爲UIImageViews圖像需要花費大量時間來處理真正大的圖像,以至於在存在許多大圖像時,它會通過表視圖滾動瀏覽。iOS - 處理大圖像

我的問題是我能做些什麼來簡單地將這些圖像加載到UIImageView中並不是主線程上的巨大負擔?

回答

1

我不得不這樣做最近,

我的解決方案很簡單。

  1. 下載圖像(AFNetworking),並將其存儲在文件目錄
  2. 更改圖像尺寸(核芯顯卡),以創建一個「縮略圖」的版本,當你滾動
  3. 當用戶按下電池看到圖像 - 顯示較大的圖像。

您可以使用AFNetworking將圖像下載到磁盤,然後使用Core Graphics調整大小。我在NSOperation中封裝了我的內容,並將它們添加到隊列中,以便它不會凍結任何UI。

您看到滯後響應的原因是這些圖像在內存中保存,對於較小的表格很適用,但不可縮放。這也可能是因爲您的抓取正在主線程中完成。

希望這已經給你帶來了正確的方向。

https://github.com/AFNetworking/AFNetworking

CoreGraphics Image resize

+0

,我不想做這樣的事情的唯一原因是因爲我害怕它了多少存儲空間,將最終使用,但似乎是一個很好的解決方案除了我想我可以限制存儲的數據量。謝謝 – harryisaac