在 Xcode 5中向 superview 添加间距约束

我正在 Xcode 5中构建一个 iOS 应用程序,我在添加布局约束方面遇到了麻烦。在 Xcode 4.x 中,我可以只向任何 UI 元素添加容器(superview)的前导/尾随/顶部/底部空格。现在,我只有一个选择:

enter image description here

我想在我的文本视图中添加一个“底部空间到 superview”约束。它说“距离最近的邻居”,但我不想创建一个约束“最近的邻居”,我有其他东西在我的文本视图,我不想创建一个约束与该。如果在我的文本视图下没有其他对象,它将正确地向容器添加约束。但是如果我试图改变任何东西,一切都会搞砸: 我需要将所有视图移到其他地方,然后添加约束,然后添加将其他视图移回。如果我在文本视图和 UI 元素之间添加一个约束(在这个例子中是一个按钮) ,它就不起作用了(一切看起来都很正常: 按钮对 superview 的底部有一个约束,文本视图对按钮有一个垂直间距约束,而且没有冲突约束)。UI 元素出现在不同(3.5英寸)屏幕方向的屏幕边界之外。是 Interface Builder 有问题还是我漏掉了什么?当我可以正确地设置所有东西时,当我调整 Interface Builder 屏幕的大小时,我的控制看起来仍然是出界的,但是在3.5英寸的模拟器/设备上可以正确显示。在 Xcode 5中使用新的 Interface Builder 约束来设计 UI 的“最佳实践”是什么?

更新: 我在另一个项目中遇到了同样的问题。我试图通过 CTRL 将一个视图的顶部和顶部的布局指南完全对齐——将我的控件拖动到它说“顶部布局指南”的位置,它试图将我控件的底部与布局指南对齐(大约 -470点) ,而不是沿着我控件的顶部对齐,这没有任何意义,因为控件本身应该在可变高度的屏幕上布局(例如普通和4英寸的 iPhone,以及未来可能的其他布局)。.).下面是正在发生的事情的截图:

enter image description here

我得到了这个约束:

enter image description here

我怎样才能让 Interface Builder 把视图的 头儿对齐到顶部的布局指南?

更新2: 我找到了一个变通方法。我首先调整视图的大小以降低它的高度(这样它的顶部不会重叠或非常接近顶部布局指南) ,然后我用 CTRL + 将它拖到顶部布局指南。看起来运行正常。连接之后,我再次将视图调整到所需的大小并选择 Update Constraints。它可以工作,但仍然不是一个解决方案,因为它需要调整视图的大小、连接、再次调整大小和更新约束。

51706 次浏览

现在似乎是底部约束了。 选择您的视图及其超视图,点击“对齐”并检查“底部边缘”的东西

pic

要在一个视图和它的“超视图”之间添加一个约束(比如“超视图的底部空间”) ,你可以使用文档大纲(Interface Builder 的左边部分)。

文件大纲:

  1. 按住 ctrl 键并从视图中拖动到它的“ superview”(反之亦然)。
  2. 选择要添加的约束(在本例中为“从底部空间到容器”)。

ctrl-drag from the view to its' superview (or vice versa) Select the constraints you want to add

如果您想添加尾随约束或前导约束,如在 Xcode 4中,请 CTRL-从您想要添加约束的视图的中心向左、向右、向上或向下拖动。然后会出现一个窗口,您可以在其中选择要添加的约束(取决于您拖动 CTRL 的方向)。

Jarig 的回答是好的,但有时也会导致意想不到的结果。

另一个选项是选择子视图并转到:

编辑 > 图钉 > 顶部空间到 Superview

或者任何你想要的约束。