设置约束后 NavigationBar 后面的 UITableView

UITableView behind NavigationBar after setting constraints

我已将 TableView 添加到我的 ViewController。

我设置了这样的约束:

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

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

您没有考虑使用约束的导航栏。将顶部约束设置为 50。

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

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

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

约束 table 视图的视图控制器的顶部到顶部布局指南。这也将为您处理轮换。在横向导航栏可能有较小的高度,这也说明了这一点。如果将它设置为 50,它可能看起来很荒谬。

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