27

假设我有一个名为container. container包含 5 UIButtons。我想在 上添加一个高度NSLayoutConstraintcontainer这个高度应该等于NSLayoutHeightAttribute其子视图中最高按钮的高度。

我没有看到一个简单的方法来做到这一点。有人有想法么?

4

1 回答 1

40

您需要为每个子视图(按钮)设置一个约束,指定容器的高度应大于或等于子视图的高度。为该约束赋予高优先级,例如UILayoutPriorityRequired(无论如何这是默认设置)。

然后在容器的高度上再添加一个约束,指定它的高度应该等于 0。给该约束一个低优先级,例如UILayoutPriorityLow. 由于自动布局试图最小化未满足约束的错误,它将使容器尽可能短,同时仍然满足所有更高优先级的约束。

我在这个要点中举了一个例子。它产生这个结果:

示例屏幕截图

蓝色视图具有固定的高度。棕褐色视图是蓝色视图的超级视图,它的高度如上所述受到限制。我将每个子视图的底部固定到容器的底部,但您可以固定顶部或 Y 中心。

于 2013-06-14T23:55:22.453 回答