ios- Autolayout-为导航项添加约束方面

Dur*_*sad 8 ios autolayout

我刚刚开始将我的应用程序移动到autolayout.我想约束导航栏下面的标签'0'像素.我试过但没有找到解决方案.这是屏幕截图.

在故事板中,我给了superview一个约束.

在此输入图像描述

在IOS7中,它工作正常.

在此输入图像描述

但是在IOS6中它会在导航栏下方64像素,因为superview从导航栏下面开始.

在此输入图像描述

如果我可以为导航栏下面的标签添加顶部约束,它将解决问题.但我无法找到如何做到这一点.我搜索了几个问题.但是他得到了答案.

请帮忙.

Leo*_*ica 10

iOS 11更新:

iOS 11引入了安全区域的概念,并且容器的负担在可见区域中的所有内容再次位于视图的手中,而不是视图和控制器的探戈.

请参阅苹果的文档在这里.

使用故事板或XIB时,就像在Xcode中启用该功能一样简单.这是向后兼容的,应该在iOS 10及以下版本中按预期工作.在代码中,您将使用if (@available(iOS 11.0, *))以决定是否针对安全区域指南/锚点设置约束或使用旧系统上的旧版指南.


使用故事板时,需要在顶部布局指南中添加约束.这将解决您的问题,如在iOS6上,即0pt,在iOS7上,它是动态的.如果您使用的是nib/xib文件,它会变得更复杂一些; 您需要在代码中添加约束.实现此目的的最简单方法是创建一个约为0垂直空间的约束,在代码中创建此约束的出口,然后将约束出口viewDidLayoutSubviews更新constant为值self.topLayoutGuide.length.