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

时间:2013-09-23 12:21:53

标签: ios xcode interface-builder autolayout xcode5

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

enter image description here

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

更新:我在同一件事的另一个项目中遇到了更多麻烦。我正在尝试通过CTRL将我的控件拖到顶部布局指南的顶部布局指南顶部的顶部布局指南,并且它正试图将我的控件底部变为布局指南(约-470)这是没有任何意义的,因为控件应该在可变高度的屏幕中布局自己(例如常规和4英寸iPhone,以及未来可能的其他布局......),而不是控制我的控制顶部。以下是正在发生的事情的屏幕截图:

enter image description here

我在约束中得到了这个:

enter image description here

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

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

4 个答案:

答案 0 :(得分:94)

要在视图及其“超级视图”之间添加约束(如“超级视图的底部空间”),您可以使用文档大纲(界面构建器的左侧部分)。

在文件大纲中:

  1. 按住ctrl键并从视图拖动到'superview(反之亦然)。
  2. 选择要添加的约束(在此示例中为“底部空间到容器”)。
  3. ctrl-drag from the view to its' superview (or vice versa) Select the constraints you want to add

答案 1 :(得分:48)

Jarig的答案很好,但有时可能会导致意外结果,如评论中所述。

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

编辑器> Pin>超级视图的顶级空间

或您想要的任何约束。

答案 2 :(得分:1)

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

pic

答案 3 :(得分:0)

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