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