IOS:选择UIScrollView或UITableView

Cra*_*Dev 13 uitableview uiscrollview ios

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

这是一个残酷的例子......

在此输入图像描述

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

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

Vin*_*rci 14

UITableView针对"可重用"单元格进行了优化,适用于在长列表中滚动.UITableView正如其他人所建议的那样,使用a的另一个好处是它只实例化可见细胞,因此减少了内存消耗.

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

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

编辑:

在第二个想法,在你的情况下,UICollectionView肯定是一个更好的候选人UITableView.特别是如果你计划在iPad上做一些类似2列布局的事情......


Saa*_*hry 8

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

如果您有大量内容需要滚动浏览,则UITableView可能会帮助您降低内存使用率.

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

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

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

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