4

我终于尝试在 IB 中采用自动布局,但在为某些对象设置约束时遇到了麻烦。我基本上希望 5 个视图在整个超级视图中垂直平均分布。我有 3 个按钮,由 2 行分隔。我希望间距 D1、D2、D3 和 D4 相等,而无需调整任何高度的大小。如何在 IB 中设置?

在此处输入图像描述

4

1 回答 1

1

您可以为 D1、D2、D3 和 D4创建UILayoutGuide对象(或者,对于 iOS 9 之前的 iOS 版本,对象),例如、等,然后将它们的高度定义为彼此相等。在视觉格式语言 (VFL) 中,垂直约束看起来像:UIViewspacer1spacer2

@"V:|-[button1][spacer1][separator1(4)][spacer2(==spacer1)][button2][spacer3(==spacer1)][separator2(4)][spacer4(==spacer1)][button3]-|"

我不知道你是如何表示你的分隔线的(这里我只是使用 4 点高UIView,但你可以按照你想要的任何方式来做)。但希望这能说明这个想法。

如果您在 Interface Builder 中执行此操作,则可以UIView在可见控件之间添加对象,然后选择所有间隔视图(例如通过单击 shift),然后添加约束以固定“高度相等”以使它们全部相同的高度。

NSLayoutAttributeCenterY您可以通过对每个按钮和分隔线的属性创建约束并调整每个按钮的multiplier值以使它们均匀分布,从而在没有间隔视图的情况下以编程方式实现类似的效果。效果非常相似,但并不完全相同。

于 2013-09-12T15:54:45.003 回答