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

What insane Autolayout logic is this?

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

我给它添加了一个垂直堆栈。间距 = 0,对齐方式 = 中心 X,均匀填充。我用 space = 0.\

将它限制在其父视图的 4 个边缘

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

对于每个水平堆叠:对齐 = 居中 Y,均匀填充,间距 0。

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

我将这些堆栈之一的宽度限制为主堆栈的宽度。

结果很疯狂。

天哪,结果不是这样的吗?

除了外部(垂直)堆栈视图的顶部、前导、底部和尾随约束外,您不需要任何 约束。确保将 alignment 属性 设置为 Fill 并将 distribution 属性 设置为 Fill Equally for all(垂直和水平)堆栈视图。

结果:

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