堆栈视图分布异常

问题描述

如何防止堆栈视图像这样散布其中的项目?我希望堆栈视图的高度根据内部内容动态增加

enter image description here

我目前的发布位置设置为Equal Spacing。如果我将分布更改为fillfill proportionally,它要么大幅度拉伸其中之一,要么在某些项目之间留出很大的空间。

enter image description here

我的约束如下:

enter image description here

如果我摆脱了height = 896,则会收到一条错误消息,提示它需要限制Y位置或高度。

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

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

解决方法

如果您希望堆栈视图根据内部内容动态调整其大小,则应显式指定堆栈视图中包含的所有项目的大小(除非内部视图可以根据{ {1}}),并且不要为堆栈视图本身设置任何高度限制。

因此,您要为UILabelUITextFieldUIButton设置高度限制。设置约束后,只需将分布设置为UITextViewfill(根据您的用例)

对于fillProportionally错误,请给其needs constraints for Y position or height而不是高度限制。