我在情节提要的 UIViewController 中有一个 UIView,我想在该空间上添加一个约束,以查看距顶部边缘的距离。
现在,当我按 ctrl + 拖动到 ViewController 的主视图时,我只能选择将其设置为顶部布局指南。
这对我来说是个问题,因为在应用程序的某一时刻,我要将主视图向上移动 20-50 像素左右,然后发生的事情是我拥有的视图不会移动......因为它与超级视图不对齐。
如何在情节提要中手动执行此操作,还是必须以编程方式添加?
我正在使用 xcode 6。
约束常数值右侧有一个箭头。如果单击它,会弹出一个菜单,您可以在其中选择要相对于什么进行约束。如果您选择“视图”,它会将其固定在视图的顶部。
https://i.stack.imgur.com/N627y.png
您应该可以通过在情节提要中突出显示您想要的视图,然后在顶部菜单中选择 Editor > Pin > Top Space to Superview
来实现。
这在 XCode 7 中已过时,请参阅@PaulGurov 的答案。
TL;DR:您可以通过按键盘上的 Alt 键来限制边距。
还可以补充一点,如果您尝试固定的视图不是您要固定到的视图的直接子视图,则建议的方法实际上并不有效。假设视图层次结构看起来像这样,并且您想将图像视图(在本例中为 Parallax Image View
)固定到视图控制器的视图(在本例中为 View
)。
https://i.stack.imgur.com/Er0lO.png
为此,您只需 Control + Drag 从 Parallax Image View
到 View
。这提供了默认选项,您可以在其中看到 Vertical Spacing to Top Layout Guide
以将 Parallax Image View
固定到顶部布局指南。
https://i.stack.imgur.com/PABJe.png
您想要的是将其固定到视图的顶部(边距)。为此,您必须通过按 Alt 切换到另一组约束
https://i.stack.imgur.com/rJ3Ub.png
我已经有一大堆限制,我只是想改变它们而不是打破它们。事实证明,如果您双击要编辑的约束,然后单击具有“.Margin”的项目,您可以通过选择该项目来关闭“Relative to Margin”。
https://i.stack.imgur.com/VHqNW.png
丹的回答有效。我只是想说明,如果你在storyBoard中将你的视图设置为y < 20,并通过pin面板配置约束,它会将top设置为superview:
https://i.stack.imgur.com/LgIlM.png
https://i.stack.imgur.com/3khYr.png
如果不小心将视图的高度设置为 0,则不会出现 Vertical Space to Top Layout Guide。但是,将出现垂直空间到底部布局指南,这对于大约 2004 年的 Apple 内部人员来说一定是有意义的。
以上答案都没有对我有用,相反,我必须使用超级视图的顶部而不是顶部布局指南来设置我的子视图的顶部。
首先,用superview垂直设置子视图中心。
然后,将 subview 和 superview 的 Center Y 约束更改为 Top 约束。
你现在可以走了。