74

我正在 Xcode 5 中构建一个 iOS 应用程序,但在添加布局约束时遇到了问题。在 Xcode 4.x 中,我可以将前导/尾随/顶部/底部空格添加到容器(超级视图)到任何 UI 元素。现在,我只有这个选项:

在此处输入图像描述

我想在我的文本视图中添加一个“超级视图的底部空间”约束。它说“与最近邻居的间距”,但我不想创建对“最近邻居”的约束,我的文本视图下还有其他东西,我不想用它来创建约束。如果我的文本视图下没有其他对象,它会正确地向容器添加一个约束。但是,如果我尝试更改任何内容,一切都会变得一团糟:我需要将所有视图移动到其他位置,然后添加约束,然后添加将其他视图移回。如果我在文本视图和 UI 元素(在这种情况下是一个按钮)之间添加一个约束,它就不起作用(一切似乎都正确:按钮对超级视图的底部有一个约束,而文本视图有一个垂直间距约束)按钮,并且没有冲突的约束)。UI 元素以不同的(3.5 英寸)屏幕方向显示在屏幕边界之外。Interface Builder 是否存在错误,或者我遗漏了什么?当我可以正确设置所有内容时,当我调整界面构建器屏幕的大小时,我的控件似乎仍然超出范围,但在 3.5 英寸的模拟器/设备上正确显示。在 Xcode 5 中使用新的 Interface Builder 约束来设计 UI 的“最佳实践”是什么?

更新:我在另一个有同样事情的项目中遇到了更多麻烦。我试图通过 CTRL 将我的控件拖动到它说“顶部布局指南”的位置来精确地修复视图的顶部到顶部布局指南,并且它正试图将我的控件底部与布局指南相匹配(大约 -470点)而不是调整我的控件的顶部,这没有任何意义,因为控件应该在可变高度的屏幕中进行布局(例如常规和 4 英寸 iPhone,以及将来可能的其他布局..)。这是正在发生的事情的屏幕截图:

在此处输入图像描述

我在约束中得到了这个:

在此处输入图像描述

如何使 Interface Builder 将视图顶部与顶部布局指南对齐?

更新 2:我找到了一种解决方法。我首先调整视图的大小以减小它的高度(因此它的顶部不会重叠或非常靠近顶部布局指南),然后我 CTRL+将其拖动到顶部布局指南。它似乎工作正常。连接后,我再次将视图调整为所需大小并选择Update Constraints. 它可以工作,但它仍然不是解决方案,因为它需要调整视图大小、连接、再次调整大小和更新约束。

4

4 回答 4

94

要在视图和它的父视图之间添加约束(例如“到父视图的底部空间”),您可以使用文档大纲(界面生成器的左侧部分)。

在文档大纲中:

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

ctrl-drag 从视图到它的超级视图(反之亦然) 选择要添加的约束

于 2013-09-23T19:01:04.427 回答
48

Jarig 的回答很好,但有时会导致意想不到的结果,如评论中所述。

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

编辑器 > 固定 > 顶部空间到 Superview

或您想要的任何约束。

于 2013-12-03T17:27:15.430 回答
1

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

图片

于 2013-09-23T18:15:31.643 回答
0

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

于 2013-09-23T19:19:45.277 回答