我刚刚开始将我的应用程序移动到autolayout。 我想约束导航栏下面的标签'0'像素。 我试过但没有找到解决方案。 这是屏幕截图。
在故事板中,我给了superview一个约束。
在IOS7中它可以正常工作。
但是在IOS6中它会在导航栏下方64像素,因为superview从导航栏下面开始。
如果我可以为导航栏下面的标签添加顶部约束,它将解决问题。但我无法找到如何做到这一点。我搜索了几个问题。但是他得到了答案。
请帮忙。
答案 0 :(得分:10)
iOS 11更新:
iOS 11引入了安全区域的概念,并且容器的负担在可见区域中的所有内容再次位于视图的手中,而不是视图和控制器的探戈。
请参阅Apple的文档here。
使用故事板或XIB时,它就像在Xcode中启用该功能一样简单。这是向后兼容的,应该在iOS 10及以下版本中按预期工作。在代码中,您将使用if (@available(iOS 11.0, *))
来决定是否针对安全区域指南/锚点设置约束或使用旧系统上的旧版指南。
使用情节提要时,您需要在顶部布局指南中添加约束。这将解决您的问题,如在iOS6上,即0pt,在iOS7上,它是动态的。如果您使用的是nib / xib文件,它会变得更复杂一些;您需要在代码中添加约束。实现此目的的最简单方法是创建一个约为0垂直空间的约束,在代码中创建此约束的出口,并在viewDidLayoutSubviews
中,将约束出口的constant
更新为值{ self.topLayoutGuide.length
。
答案 1 :(得分:0)
您只需对约束进行一些修改:
1)为您的标签
提供高度限制2)将标签固定到前导视图 - 水平空间约束
3)添加垂直空间约束
第3步必须小心[我附上图片供你参考。]
执行此操作后,请检查视图控制器上是否仍然存在红色箭头标记。