IOS:选择UIScrollView或UITableView
在我的应用程序中,我应该创建一个包含大量信息的视图; 这些信息分为4个部分,每个部分可以包含文本,图像列表ecc …
这是一个残酷的例子……
现在我怀疑采用什么类型的解决方案。
在我看来,一个很大的卷轴视图很难组织起来。 使用代码组织一个大的桌面视图很复杂……你有什么想法?
您应该使用UITABLEVIEW
,易于管理,易于理解,更具可重用性和良好的内存管理
如果您有大量内容要滚动, UITableView
可能会帮助您减少内存使用量。
当一个单元格滚出视线时,它将从视图中移除并由UITableView
保留以供以后使用(通过-dequeueReusableCellWithIdentifier:
。 如果内存不足,我相信那些不可见的视图(UITableViewCells)将会被释放。 这基本上意味着您的应用只会在内存中保留实际可见的视图。 将缓存更多内容,但如果需要,可以随时清除。
如果显示大量数据,并将其全部添加到UIScrollView
,则可能会比使用UITableView
使用更多内存。 您可能必须实现类似于UITableView
删除(并可能释放)不可见视图的机制。
所以,你基本上可以达到同样的效果,但是UITableView
已经为你做了很多工作。
如果您显示大量数据(可能超过两个屏幕已满),我倾向于使用UITableView
。
UITableView
针对“可重用”单元格进行了优化,适用于在长列表中滚动。 正如其他人所说,使用UITableView
另一个好处是它只实例化可见单元格,因此减少了内存消耗。
在您的情况下,由于您的内容看起来具体且不重复,我建议使用更容易使用的简单UIScrollView
。 ( UITableView
inheritance自UIScrollView
btw)
如果内存/性能是一个问题,那么更喜欢UITableView
或只是编写自己的逻辑来实例化可见的视图(例如通过使用scrollOffset)
编辑:
再UICollectionView
,在你的情况下, UICollectionView
肯定是比UITableView
更好的候选者。 特别是如果你计划某一天在iPad上做2列布局……
现在使用静态单元格在Interface Builder中很容易创建这种东西; 您可以直观地布局整个界面并为单元格(和/或其子视图)设置出口,以便在视图控制器中配置内容。