Autolayout高度等于MAX(多个视图高度)

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

我没有看到一种直截了当的方式来做到这一点。 有人有主意吗?

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

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

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

示例屏幕截图

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