最佳实践UIScrollView

yax*_*yax 0 uiscrollview uikit ios

我在iOS中使用uiscrollview时遇到内存问题.

我有一个带有巨大子视图的滚动视图(4000x600).在这个子视图中,我有其他UIImageViews作为子视图.

情况就是这样:

测试

当我打开scrollview时,我可以看到内存和进程都在急剧增加.

我想知道解决问题的方法是:将所有视图直接添加到scrollview,而不是传递到"中间"巨大视图是否更好?

提前致谢.

Leo*_*ica 5

如果您的许多子视图直接添加为滚动视图的子视图或单个大容器视图,则无关紧要.只要它们全部加在一起,它们就会被加载到内存中并浪费资源.相反,您应该在用户向左和向右滚动时动态添加和删除这些子视图.

而不是发明轮子,使用UICollectionView.它旨在完全满足您的需求.然后,每个图像视图将成为该集合视图中的单元格.集合视图管理视图重用,并且仅在内存中保存用于在滚动位置周围显示的必要单元格.

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UICollectionView_class/