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

Sno*_*man 23 cocoa-touch ios autolayout

说我有一个叫做的视图container.container包含5 UIButtons.我想补充的高度NSLayoutConstraintcontainer,这个高度应等于NSLayoutHeightAttribute其子视图最高的按钮.

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

rob*_*off 36

每个子视图(按钮)需要一个约束,指定容器的高度应大于或等于子视图的高度.给那个约束一个高优先级,就像UILayoutPriorityRequired(无论如何这是默认值).

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

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

示例屏幕截图

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