堆栈视图分布意外运行

Stack view distribution acting unexpectedly

如何防止我的堆栈视图像这样展开其中的项目?我想让stack view的高度根据里面的内容动态增加。

我目前的分发设置为 Equal Spacing。如果我将分布更改为 fillfill proportionally,它要么大幅拉伸其中之一,要么在某些项目之间放置一个巨大的 space。

我的约束如下:

如果我去掉 height = 896,我会收到一条错误消息,指出它需要对 Y 位置或高度进行约束。

对于每个项目,我只是设置高度锚点:

button.translatesAutoresizingMaskIntoConstraints = false
button.heightAnchor.constraint(equalToConstant: 50).isActive = true

如果你想让堆栈视图根据里面的内容动态调整它的大小,那么你应该明确指定堆栈视图中包含的所有项目的大小(除非内部视图可以根据内容调整自己的大小像 UILabel) 并且不要为堆栈视图本身设置任何高度限制。

因此,在您的情况下,您需要为 UITextFieldUIButtonUITextView 设置高度限制。设置约束后,只需将分布设置为 fillfillProportionally(根据您的用例)

至于needs constraints for Y position or height错误,给它一个Y position而不是高度限制。