设置约束后导航栏后面的 UITableView

Posted

技术标签:

【中文标题】设置约束后导航栏后面的 UITableView【英文标题】:UITableView behind NavigationBar after setting constraints 【发布时间】:2015-09-17 06:57:02 【问题描述】:

我已经向我的 ViewController 添加了一个 TableView。

我已经设置了这样的约束:

然而,当我运行项目时,第一个单元格的顶部(如 40px)位于 NavigationBar 后面:

我在这里做错了什么?为什么是navigationControllerBar后面的TableView?

【问题讨论】:

【参考方案1】:

不要只将约束设置为 50,这在很多级别上都是错误的。

约束表视图的视图控制器的从上到上的布局指南。这也将为您处理旋转。在横向中,导航栏的高度可能较小,这也是原因。如果将其设置为 50,它可能看起来很荒谬。

或者像你一样将表格视图固定到超级视图的顶部,并将contentInset 属性设置为条的高度(如果你想要半透明的导航栏并在滚动时查看导航栏下的单元格,这很有用)。您可以在代码或情节提要中执行此操作:

【讨论】:

【参考方案2】:

您没有使用约束来计算导航栏。将顶部约束设置为 50。

由于 Interface builder 中的场景没有导航栏 - 约束没有考虑它,并且 y(顶部)在没有导航栏的视图上设置为 0。

要么将顶部约束设置为 50,要么在视图中放置一个条形并将顶部约束设置为它。

【讨论】:

以上是关于设置约束后导航栏后面的 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

UIView 位于半透明导航栏后面,具有实用创建的视图约束

android关掉导航栏后怎么

Swift iOS以编程方式在导航栏下方设置scrollView约束

自定义导航栏高度

Swift - 如何在栏导航上显示图像

html css 求助大神:导航栏菜单问题,二级菜单内容会遮盖掉后面的一级菜单栏选项。