表格视图顶部的分段控件,但不在标题视图中

Posted

技术标签:

【中文标题】表格视图顶部的分段控件,但不在标题视图中【英文标题】:Segmented control on top of a table view, not in the title view though 【发布时间】:2012-10-20 22:20:52 【问题描述】:

如何将分段控件放在 tableview 之上。我不希望它出现在导航控制器的标题视图上,也不希望它与 tableview 一起滚动。为了参考我的意思,请查看 App Store 应用程序,选择类别,然后选择任何类别。在那里你会看到我正在寻找的分段控件。具有“付费”、“免费”和“发布日期”部分的部分。我使用的代码不是 IB,所以如果您知道如何使用代码而不是 IB 拖放来回答这个问题。

【问题讨论】:

【参考方案1】:

当你在一个table view控制器中需要除了table view之外的其他组件时,你不能使用UITableViewController。您需要使用 UIViewController。您将 UITableView 添加为子视图,并使视图控制器成为表视图的数据源和委托。然后,您也可以将任何其他组件添加到视图控制器的视图中。这样附加组件就不会随着表格视图滚动。要让视图控制器的行为与表视图控制器完全一样,还需要做更多的工作。这包括覆盖setEditing:animated: 方法来设置表格视图的编辑属性。它包括在viewWillAppear: 方法中取消选择任何当前选定的行。

UITableViewController 将表格视图作为其视图。这可以防止您以不会滚动的方式将任何其他子视图添加到表视图控制器。

【讨论】:

效果很好。这比我想象的要容易得多。非常感谢 rmaddy!

以上是关于表格视图顶部的分段控件,但不在标题视图中的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 的工具栏顶部居中分段控件?

如何在 Swift 的分段控件中调整 textLabel 的大小?

如何在单个视图中处理多个分段控件的事件

为啥我的分段控件没有显示在我的视图中?

无论触摸发生在哪里,都滚动 UIScrollView

Swift - 如何让分段控制锁定在屏幕顶部