如何固定到 TopLayoutGuide.Top xcode 7

How to pin to TopLayoutGuide.Top xcode 7

这曾经在 xcode 6 中有效,现在在 Xcode 7 中变灰了。有人可以解释为什么 .Bottom 现在是我唯一的选择吗?

为什么需要它? TopLayoutGuide.Top 只是父视图的上边框,不是吗?如果您希望 "overlay" 视图覆盖整个屏幕,您可以将约束限制在父视图而不是布局指南中。

我经常需要它来显示导航栏下方的滚动视图。 Apple 可能有充分的理由将其删除,并且 iOS 11 无论如何都会删除布局指南,但出于学术目的,您仍然可以完成此操作。

首先,从视图顶部和顶部布局指南底部之间的约束开始。

其次,从身份检查器的文档部分获取您视图的对象 ID(select 您在 Interface Builder 中的视图并键入 Alt-Cmd-3)。就我而言 c9Q-8h-rHu

第三,通过按住 Ctrl 键并单击文件并选择 "Open as > Source Code"

打开您的故事板作为源代码

现在搜索您的对象 ID。在该搜索的结果中查找一个约束,其中您的视图的顶部被约束到其他对象的底部。

<constraint firstItem="c9Q-8h-rHu" firstAttribute="top" secondItem="pgx-wv-BwY" secondAttribute="top" id="OSD-K0-laA"/>

将第二个属性更改为top并保存。然后您可以再次按住 Ctrl 键并单击您的文件并选择以 Interface Builder Storyboard 打开。

请注意,约束已更改为 "Align Top",但它在功能上是等效的。