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开发基础-UITableView控件简单介绍

iOS 11 从 UITableView 或 UIScrollView 获取 visibleHeight 和 contentInset

UIScrollview - 模糊效果 iOS

iOS 13 语音控制 UIScrollView

iOS UIScrollView 滚动检测

如何在 iOS 中使用 UIImageview 添加 UIScrollview 的页面控件