2014-03-12 75 views
1

我有一個UIScrollView,其中我加載了大量UIImage的水平。哪一個會更好?僅在UIScrollView的可見區域加載圖像並卸載其他不可見的圖像?或者將圖像加載到UIScrollview的可見區域,而不是卸載最初位於可見區域且現在隱藏的圖像?爲子視圖使用優化UIScrollView

回答

1

如果您想利用可重用性的內置好處,則應該使用UITableviewUICollectionView而不是UIScrollView。請參閱this教程獲取水平表格視圖。在每個單元上添加圖像。它會提高性能並減少內存。

1

可能是最好的優化將重新使用圖像視圖。一種解決方案是使用UICollectionView而不是UIScrollView,另一種方法是手動重用UIScrollView子視圖。看看這library它重用scrollView子視圖,並有API類似於UITableView

1

我在這個時代的推薦是使用UICollectionView,並允許它爲您處理動態單元格加載。它具有非常靈活的單元機制,類似於UITableView中的單元機制。

1

iOS在內存變低時卸載UIImages,並根據需要自動重新加載它們。但是,爲了避免首先進入低內存環境,我建議您釋放任何不需要的圖像,前提是由於重新加載而造成的性能降低是可以接受的。請注意,UIImage方法imageNamed:緩存圖像,因此您可能需要使用其他init方法之一。 (也就是說,如果你真的想使用UIScrollView。正如這裏指出的那樣,有更好的解決方案。)