优化UIScrollView的子视图使用



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

如果您想利用可重用性的内置优势,您应该使用UITableviewUICollectionView而不是UIScrollView。关于水平表视图,请参考本教程。在每个单元格上添加图像。它将提高性能并减少内存。

可能最好的优化是重用图像视图。一个解决方案是使用UICollectionView而不是UIScrollView,另一个解决方案是手动重用UIScrollView子视图。看看这个库,它重用了scrollView子视图,并且有类似于UITableView的API。

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

iOS会在内存不足时卸载UIImages,并根据需要自动重新加载它们。然而,为了避免首先出现低内存的情况,我建议发布任何您不需要的图像,只要重新加载它们造成的性能损失是可以接受的。注意UIImage方法imageNamed:缓存图像,所以你可能想使用其他的init方法之一。

(也就是说,如果你真的想使用一个UIScrollView。

相关内容

最新更新