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