繁体   English   中英

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

[英]ios- Autolayout- add constraint respect to navigation item

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

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

在此输入图像描述

在IOS7中,它工作正常。

在此输入图像描述

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

在此输入图像描述

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

请帮忙。

iOS 11更新:

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

请参阅苹果的文档在这里

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


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

您只需在约束中进行一些修改:

1)给你的标签一个高度限制

2)将标签固定到前视图 - 水平空间约束

3)添加垂直空间约束

第三步必须小心[我附上一张图片供你参考。]

添加垂直空间约束

完成后,检查视图控制器上是否仍然存在红色箭头标记

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM