UIScrollview 有一个大视图,还是 UITableview 有多个视图?

Posted

技术标签:

【中文标题】UIScrollview 有一个大视图,还是 UITableview 有多个视图?【英文标题】:UIScrollview with one large view, or UITableview with multible views? 【发布时间】:2015-06-19 21:15:14 【问题描述】:

我正在开展一个可以详细了解公司信息的项目。在视图的下半部分,我有一些不动的按钮,但在它们上方我有更多的内容,我无法适应 4s 的屏幕。所以我想我应该创建一个新视图并将该视图插入到 TableView 或 ScrollView 中。

我不确定是否应该为页面的每个部分创建截面视图,例如页面标题、公司标题和描述、其他照片等的英雄图像,然后获取每个视图并将它们添加到 Tableview,或者我应该创建一个包含所有元素的大视图并将其插入到 ScrollView。在超出区域高度的应用中显示内容的标准/最佳选择是什么?

我提供了一个详细视图的示例。我希望消息/呼叫按钮上方的所有内容都向上/向下滚动,以便容纳更多内容。

【问题讨论】:

【参考方案1】:

使用静态 UITableView 可以非常轻松地做到这一点。

看看我的博客。它详细解释了如何执行此操作。

您甚至不需要数据源或任何东西。

http://www.oliverfoggin.com/using-a-static-uitableview-as-a-layout-device/

【讨论】:

作为旁注。看看我最新的博客。您现在可以(对于 ios 9)使用 UIStackView。 :-)【参考方案2】:

就个人而言,我会使用 UITableView,并在 nib 文件 (*.xib) 中创建每个单独的单元格并以编程方式注册这些单元格。

这样,您可以重新排序段,并轻松地单独编辑单元格,控制视图控制器中每个单元格的位置和高度。

如果包含这些细节的视图控制器是 UITableViewController 的子类,那么我会推荐 @Fogmeister 的建议并使用静态 UITableView,因为在不破坏“消息”和“呼叫”按钮的情况下更容易添加操作Model-View-Controller 模式,但只能在 UITableViewController 子类中使用静态 UITableView。

【讨论】:

以上是关于UIScrollview 有一个大视图,还是 UITableview 有多个视图?的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发UI篇—UIScrollView控件介绍

iOS开发UI篇—UIScrollView控件介绍

UIScrollView 一个分页器

如何使用主 iPhone 视图之外的 UI 元素在 Interface Builder 中设置 UIScrollView?

UIScrollVIew 中的 UIView 不更新视图

UIScrollView 类型访问 UIWebView