Xcode 4和Interface Builder:编辑垂直间距约束(Anchor Top,而不是Bottom)

时间:2013-01-01 04:20:36

标签: ios xcode cocoa-touch interface-builder xib

我有一个未在设备上正确布局的小部件(它的看起来在IB中正常,但它不太正确)。小部件是一个标签,它位于屏幕中间。 Interface Builder为它提供了一个带有“底部锚点”的垂直空间约束。这里,底部表示屏幕的底部(而不是下面的小部件,或锚定到顶部屏幕)。

我在检查员,但我没有看到如何更改为顶部锚(最好是上面的小部件)。我特别尝试阅读Apple的docsEditing Constraints,但这很令人困惑,并没有解释如何进行更改(或者我错过了讨论 - 这是7句话)。

下面是Interface Builder下的屏幕截图,显示了固定在屏幕底部的Vertical Space Constraint。它的属性还有很多不足之处 - Equal,Constant和Priority并没有真正帮助。

enter image description here

有谁知道如何编辑约束?具体来说,我想(1)将垂直间隔的锚从底部更改为顶部; (2)锚定上面的小部件,而不是屏幕的顶部。

2 个答案:

答案 0 :(得分:32)

通过按住Shift键单击选择“嵌入”和“计算”元素。

选择这两个元素后,使用约束菜单:

enter image description here

此菜单以及仔细选择的元素是快速编辑IB中约束的核心。在您的情况下,选择中心项,Pin菜单。选择垂直间距 - 这将为两个元素之间的垂直间距创建一个新约束。或者,选择一个元素并将“Top space to superview”固定到顶部而不是底部。

您现在可以选择并删除视图底部的垂直间距。 IB之前不允许您删除它,因为您必须拥有完整的,非模糊的约束集。添加新的垂直间距约束后,您现在就拥有了这个。

为了进一步说明,这里是一个空的视图控制器,我已经拖动了一个文本字段:

enter image description here

所有约束都是紫色的,这意味着IB已经为我添加了它们(它们是系统约束)并且它们无法被删除 - 它们是定位和调整文本字段所需的最小约束。

现在,我将选择文本字段,并将顶部空格固定到superview:

enter image description here

现在您可以看到两个垂直空间约束已更改为蓝色(它们现在是用户约束),并且它们在编辑器中具有更厚的外观。这意味着可以删除其中一个。我选择底部空间的约束并点击删除:

enter image description here

请注意,这仍然具有用户约束的外观 - 但是如果我尝试删除它,IB将自动重新创建固定到superview底部的系统约束,让我们回到原点。

我已经写过关于此问题以及类似的自动布局主题here

答案 1 :(得分:-1)

我对Autolayouts说了一句话。如果它工作,它可以工作,但如果没有,那么使用旧式的方式(使用代码)