这是什么疯狂的自动布局逻辑?

时间:2019-06-30 14:57:37

标签: macos nsviewcontroller nsautolayout nsstackview

我创建一个新的视图控制器。

我向其中添加了一个垂直堆栈。间距= 0,对齐方式=中心X,均等填充。我将其约束为其superview的4个边缘,其中space = 0。\

我在主堆栈中添加了3个水平堆栈。

对于每个水平堆栈:对齐方式=中心Y,均等填充,间距0。

我在这3个堆栈中的每个堆栈中添加了两个自定义视图。

我将其中一个堆栈的宽度限制为主堆栈的宽度。

结果太疯狂了。

enter image description here

为什么以天堂的名义不是这样的结果?

enter image description here

2 个答案:

答案 0 :(得分:1)

除了外部(垂直)堆栈视图的顶部,前导,底部和尾部约束之外,您不需要任何约束。对于所有(垂直和水平)堆栈视图,请确保将alignment属性设置为Fill,将distribution属性设置为Fill Equally。 / p>

结果:

result

答案 1 :(得分:0)

我找到了解决方案:您必须在每个自定义视图中添加一个约束,使其高度等于其堆栈视图的高度。