2016-03-21 108 views
0

我在使用iOS中的uiscrollview时遇到内存问题。最佳做法UIScrollView

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

这种情况:

Test

当我打开了滚动,我可以看到内存和进程急剧增加。

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

在此先感谢。

回答

5

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

而不是发明车轮,使用UICollectionView。它意味着完成你所需要的。每个图像视图将成为该集合视图中的一个单元格。集合视图管理视图重用,并且只在内存中保存围绕滚动位置显示的必要单元。

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

+1

我想补充的唯一的事情是要确保你在一个单独的线程加载图像,同步进行。 – PeejWeej