优化UIScrollView以进行子视图使用

时间:2014-03-12 20:26:31

标签: ios iphone objective-c uiscrollview

我有一个UIScrollView,我在那里水平加载了大量的UIImage。哪个更好?仅将图像加载到UIScrollView的可见区域并卸载其他不可见的图像?或者将图像加载到UIScrollview的可见区域,而不是卸载最初在可见区域中并且现在隐藏的图像?

4 个答案:

答案 0 :(得分:1)

如果您想利用可重用性的内置优势,则应使用UITableviewUICollectionView代替UIScrollView。有关水平表视图,请参阅this教程。在每个单元格上添加图像。它将提高性能并减少内存。

答案 1 :(得分:1)

最好的优化可能是重用图像视图。一种解决方案是使用UICollectionView而不是UIScrollView,另一种解决方案是手动重用UIScrollView子视图。看看此library它重复使用scrollView子视图,其API类似于UITableView

答案 2 :(得分:1)

我在这个时代的建议是使用UICollectionView并允许它为您处理动态单元格加载。它具有非常灵活的单元机制,类似于UITableView中的单元机制。

答案 3 :(得分:1)

iOS在内存不足时卸载UIImages,并根据需要自动重新加载。但是,为了避免首先进入低成本状态,我建议发布您不需要的任何图像,前提是由于重新加载而导致性能下降是可以接受的。请注意,UIImage方法imageNamed:缓存图像,因此您可能希望使用其他init方法之一。

(也就是说,如果你真的想使用UIScrollView。正如这里指出的那样,有更好的解决方案。)