故事板中的表头视图


Answers:


349

看起来好像只是将控件拖到表格视图的顶部。我没想到它会那么容易。

掉落前

掉落前

下降后

下降后


29
我很惊讶地发现这是这样做的。我在实现中注意到,要使其正常工作,我必须删除我的heightForHeaderInSection:(NSInteger)部分代码,否则最终将在标头视图本身上方留出额外的空间。另外,为了使此标头“粘贴”在表格视图的顶部,我必须实现viewForHeaderInSection:(NSInteger)节并返回此视图。
ozz 2012年

13
仅当表中至少有一个原型单元时,这才似乎有效。
Accatyyc 2012年

4
@cdo,您能否详细说明如何使表头“粘在”表格视图的顶部?我尝试盲目实现viewForHeaderInSection:,但出现错误消息“无法同时满足约束”。(在这里查看我的问题:stackoverflow.com/questions/14554051/…
ryanrhee 2013年

2
谢谢,直到我知道它会起作用,我才需要这样做,需要精确的拖动。我尝试过多次...
Dave Ross

1
您可以使用左侧的轮廓进行拖动,如果要设置表格标题视图,则比尝试在第一个原型单元上方精确击中要容易。我注意到-也许是Xcode错误(5.0)-只有当我先将视图移出常规层次结构时,这才起作用。我一直将其拖动到该场景的轮廓底部。然后,在第二步中,我可以将其移至表格视图。
Daniel Schneller

10

您可以通过将UIView/ 拖到文档大纲中的/ UIImageView下方UITableView(而不是布局)轻松地做到这一点。

如果您尝试拖动布局而不是文档轮廓,UITableViewCell则会跳到最令人头疼的顶部!


-2

至少在Xcode 11中,将视图拖放到tableview上仅适用于一种屏幕尺寸。在不同的屏幕上尺寸不合适。

我刚刚创建了一个视图,并将其留在情节提要中的tableview后面。我为此创建了一个IBOutlet:

@IBOutlet weak var audioView: UIView!

然后在tableview代码中,我做了:

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    return audioView
}

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 142
}

它在所有屏幕尺寸上均表现良好。


1
问题是关于表标题视图,而不是节标题视图。
R.Rincón

@R。Rincón,我在哪里提到了节标题?方法中的该部分是框架中必需的。如果您不知道,每个TableView至少都有一个部分。如果没有部分,只需传递第0部分。
Badr

此代码为每个节返回audioView作为节标题。如果有人实现这一点,则tableView.tableHeaderView将为nil。如果它们有5个部分,则将有5个部分标题。如果他们已经有节标题并且想要添加表标题视图,则此答案无济于事。这没有回答具体提到的问题tableHeaderView
R.Rincón

您可以使用方法中的一些逻辑为每个部分指定标题视图。牢记部分的TableViews。您始终会有节,如果没有,则将是第0节。没有指定节就没有指定标题视图的方法。
Badr

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.