设置约束后导航栏后面的 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的主要内容,如果未能解决你的问题,请参考以下文章