我刚刚开始将我的应用程序移动到自动布局。 我想限制导航栏下方的标签“0”像素。 我试过但没有找到解决方案。 这是屏幕截图。
在 Storyboard 中,我从 superview 给出了约束。
在 IOS7 中它工作正常。
但在 IOS6 中,它位于导航栏下方 64 像素,因为 superview 在导航栏下方开始。
如果我可以为导航栏下方的标签添加顶部约束,它将解决问题。但我找不到怎么做。我搜索了几个问题。但得到了答案。
请帮忙。
最佳答案
iOS 11 更新:
iOS 11 引入了安全区域的概念,容器可见区域中所有内容的负担再次落在 View 的手中,而不是 View 和 Controller 的探戈。
请参阅 Apple 文档 here .
使用 Storyboard或 XIB 时,只需在 Xcode 中启用该功能即可。这是向后兼容的,应该可以在 iOS 10 及更低版本下按预期工作。在代码中,您将使用 if (@available(iOS 11.0, *))
以便决定是对安全区域指南/ anchor 设置约束还是在旧系统上使用遗留指南。
使用 Storyboard时,需要对top layout guide添加约束。这将解决您的问题,因为在 iOS6 上,它是 0pt,而在 iOS7 上,它是动态的。如果您使用的是 nib/xib 文件,它会变得有点复杂;您需要在代码中添加约束。实现这一点的最简单方法是创建一个顶部垂直空间为 0 的约束,在代码和 viewDidLayoutSubviews
中为该约束创建一个导出。 , 更新 constant
约束导出的值 self.topLayoutGuide.length
.
关于ios- Autolayout- 添加对导航项的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23366849/