8

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

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

下面是界面生成器下的屏幕截图,显示了固定在屏幕底部的垂直空间约束。它的属性还有很多不足之处——Equal、Constant 和 Priority 并没有真正的帮助。

在此处输入图像描述

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

4

2 回答 2

32

按住 shift 键同时选择“Embedded”和“Calculated”元素。

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

在此处输入图像描述

这个菜单,连同精心选择的元素,是在 IB 中愉快地编辑约束的核心。在您的情况下,选择中心项目,即 Pin 菜单。选择垂直间距 - 这将在两个元素之间的垂直间距上创建一个新的约束。或者,选择单个元素并将“Top space to superview”固定到顶部而不是底部。

您现在可以选择并删除视图底部的垂直间距。IB 之前不会让你删除它,因为你必须有一套完整的、明确的约束。添加新的垂直间距约束后,您现在有了它。

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

在此处输入图像描述

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

现在,我将选择文本字段,并将顶部空间固定到超级视图:

在此处输入图像描述

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

在此处输入图像描述

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

我在这里写过关于这个以及类似的自动布局主题的文章

于 2013-01-01T08:34:32.760 回答
-1

我得到了一个关于自动布局的词。如果有效,则有效,但如果无效,则使用老式方式(使用代码)

于 2013-05-21T22:00:53.487 回答