IOS:选择UIScrollView或UITableView

在我的应用程序中,我应该创建一个包含大量信息的视图; 这些信息分为4个部分,每个部分可以包含文本,图像列表ecc …

这是一个残酷的例子……

在此处输入图像描述

现在我怀疑采用什么类型的解决方案。

在我看来,一个很大的卷轴视图很难组织起来。 使用代码组织一个大的桌面视图很复杂……你有什么想法?

您应该使用UITABLEVIEW ,易于管理,易于理解,更具可重用性和良好的内存管理

如果您有大量内容要滚动, UITableView可能会帮助您减少内存使用量。

当一个单元格滚出视线时,它将从视图中移除并由UITableView保留以供以后使用(通过-dequeueReusableCellWithIdentifier: 。 如果内存不足,我相信那些不可见的视图(UITableViewCells)将会被释放。 这基本上意味着您的应用只会在内存中保留实际可见的视图。 将缓存更多内容,但如果需要,可以随时清除。

如果显示大量数据,并将其全部添加到UIScrollView ,则可能会比使用UITableView使用更多内存。 您可能必须实现类似于UITableView删除(并可能释放)不可见视图的机制。

所以,你基本上可以达到同样的效果,但是UITableView已经为你做了很多工作。

如果您显示大量数据(可能超过两个屏幕已满),我倾向于使用UITableView

UITableView针对“可重用”单元格进行了优化,适用于在长列表中滚动。 正如其他人所说,使用UITableView另一个好处是它只实例化可见单元格,因此减少了内存消耗。

在您的情况下,由于您的内容看起来具体且不重复,我建议使用更容易使用的简单UIScrollView 。 ( UITableViewinheritance自UIScrollView btw)

如果内存/性能是一个问题,那么更喜欢UITableView或只是编写自己的逻辑来实例化可见的视图(例如通过使用scrollOffset)

编辑:

UICollectionView ,在你的情况下, UICollectionView肯定是比UITableView更好的候选者。 特别是如果你计划某一天在iPad上做2列布局……

现在使用静态单元格在Interface Builder中很容易创建这种东西; 您可以直观地布局整个界面并为单元格(和/或其子视图)设置出口,以便在视图控制器中配置内容。