3

我了解到我们可以像这样设置相等的高度V:|-[v1]-[v2(==v1)]-[v3(==v1)]-|,但这会使它们垂直分布。这与我想要的相反。

4

1 回答 1

4

您的格式字符串指定了一个垂直的布局列。例如,这意味着您将 v1 的底部固定到 v2 的顶部(以及高度)。为避免这种情况,您将需要多个约束规范。

首先,如果您希望它们都具有相同的高度,您可以使用两个单独的约束规范,如下所示:

V:[v2(==v1)]
V:[v3(==v1)]

其次,您可以使用水平布局格式和特殊选项标志固定所有顶部(感谢@jrturton 的建议):

[NSLayoutConstraint constraintsWithVisualFormat:@"H:..." options:NSLayoutFormatAlignAllTop metrics:nil views:...];

您的水平约束可能类似于 @"H:[v1]-[v2]-[v3]"。

请注意,像这样简单地将它们的顶部固定在一起并不足以垂直放置它们;您还必须指定一些其他约束(如V:|[v1])以将其中一个附加到其他约束。(当然,您还需要水平约束。)

不过,最简单的做法是使用 Interface Builder,您可以在其中简单地使用 Editor 菜单直接固定这些视图的高度和顶部。

于 2013-09-15T15:08:38.837 回答