UILayoutGuide高度为20像素

时间:2016-02-02 11:32:30

标签: ios objective-c xcode cocoa-touch interface-builder

我正在用IB制作我的UI。我的视图控制器在IB中如下所示。 enter image description here enter image description here

我将视图控制器的背景颜色设置为黄色,将子视图设置为红色。然后我设置约束,让子视图的4条边与其超视图对齐 - 视图控制器的视图。但我实际看到的是如下所示。 enter image description here

我打印出视图控制器视图的子视图,发现有一个高度为20像素的'UILayoutGuide'(顶部,我猜)。这是红色子视图没有将其顶部与超视图对齐的原因吗?

以下是我添加到红色子视图的约束。 enter image description here

其他条件:我没有将状态栏设置为隐藏。但是如果我将状态栏设置为隐藏([UIApplication sharedApplication].statusBarHidden = YES),则红色子视图的布局将变为正确(我的意思是,将其4个边缘与超视图对齐,因此无法看到黄色背景颜色)。如下。 enter image description here

有什么建议吗?感谢。

1 个答案:

答案 0 :(得分:0)

无意中,我找到了answer

实际上我正在实现UINavigationController。我将默认导航栏设置为隐藏。正如文档所说

  

状态栏的底部,如果只显示状态栏。

因此在视图控制器的视图顶部会有一个20像素的空间。并且,由于布局指南是只读的,我不能通过在子视图的顶部到顶部布局指南之间设置垂直空间来将红色子视图的顶部与其超视图(我的视图控制器的视图)对齐。最低点。

但是,这是我的解决方法。我将superview的前导,尾随,底部空间设置为0.0px,并将子视图的高度设置为等于superview的高度。现在,即使我将状态栏设置为可见,红色子视图顶部及其超级视图之间也没有空格。 enter image description here