我在用IB做UI。我的视图控制器在IB中如下所示。


我将视图控制器的背景颜色设置为黄色,将子视图设置为红色。然后我设置约束,让子视图的4条边与其superview对齐--视图控制器的视图。但实际上我看到的是下面的情景。

我打印出视图控制器视图的子视图,发现有一个高度为20 px的“UILayoutGuide”(我猜是顶部)。是因为红色的子视图没有将其顶部与超级视图对齐吗?
下面是我添加到红色子视图中的约束。

其他条件:我不会将状态栏设置为隐藏。但是,如果我将状态栏设置为隐藏([UIApplication sharedApplication].statusBarHidden = YES),红色子视图的布局将变得正确(我的意思是,将其4条边与superview的边沿对齐,这样就看不到黄色的背景颜色)。就像下面。

有什么建议吗?谢谢。
发布于 2016-02-02 13:39:02
不小心,我找到了answer。
实际上,我正在实现UINavigationController。我将默认导航栏设置为隐藏。正如文件上说的
状态栏的底部,如果只有状态栏是可见的。
因此,视图控制器视图的顶部将有一个20‘s的空间。而且,由于布局指南是只读的,我不能通过设置子视图顶部到顶部布局指南底部之间的垂直空间,将红色子视图的顶部与其superview(我的视图控制器的视图)对齐。
但是,这是我的解决办法。我将superview之间的前导、尾随、底部空格设置为0.0px,并将子视图的高度设置为superview。现在,即使将状态栏设置为可见,红色子视图的顶部与其superview的顶部之间也没有空格。

https://stackoverflow.com/questions/35152282
复制相似问题