如何在 UITableView 上浮动所有部分标题视图(或保持所有可见)?

Posted

技术标签:

【中文标题】如何在 UITableView 上浮动所有部分标题视图(或保持所有可见)?【英文标题】:How do I float all section header views (or keep all visible) on a UITableView? 【发布时间】:2013-10-28 15:01:15 【问题描述】:

我有一个包含两个部分的 UITableView。我希望第 0 节和第 1 节的标题视图始终保持可见,无论滚动位置如何。我怎样才能做到这一点?

【问题讨论】:

你为什么要那个?在我的脑海中,我认为这并不容易。 【参考方案1】:

最简单的方法。或者最快的方法是将子视图作为标题 0 添加到视图中(与表格视图分开)。看到那总是最重要的。所以基本上,把子视图放在上面。

然后像往常一样添加 Header 1

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

您需要做的是将滚动视图(从 uitableview 子类化)的 content inset 设置为您为标题 0 添加的子视图的高度。

【讨论】:

【参考方案2】:

我想不出一个开箱即用(简单)的解决方案。默认行为仅浮动当前可见行的节标题。

我相信该方法是将viewForHeaderInSection 定义为当前部分(包括)之前所有部分标题视图的数组(UICollectionView)。

编辑:(三思而后行)

你能详细说明你正在寻找的行为吗?我还没有遇到任何这样做的应用程序。可能,您只需要改变处理问题的方法并实现相同的用户行为。

例如- 您可以仅显示部分标题(总共零行),然后当用户点击其中一个部分时,您可以插入该部分的行。事实上,默认情况下,您可以从第一个部分开始,填充所有行,当用户点击另一个部分时,您关闭(删除)之前的行并在该部分中插入行。

【讨论】:

(fyi) 重新审视这个老问题,但在我的用例中仍然相关:***.com/questions/49658938/…,如果您碰巧有任何进一步的见解。【参考方案3】:

我希望始终保持可见的列标题。我刚刚将它们创建为 UIView,并将它们作为子视图添加到包含我的 UITableView 的视图中。

这不是我最初想要的解决方案,但当没有其他选择看起来很直接时,我就接受了。

【讨论】:

以上是关于如何在 UITableView 上浮动所有部分标题视图(或保持所有可见)?的主要内容,如果未能解决你的问题,请参考以下文章

禁用 UITableView 浮动部分标题点击?

在 UITableView 上创建一个浮动按钮 [重复]

如何使 UICollectionView 的一部分中的所有项目浮动在滚动视图上?

使用情节提要在 UItableview 上浮动按钮

UItableView只有一个部分粘

tvOS 9.1 UITableView 标题视图不浮动