堆栈视图分布意外运行
Stack view distribution acting unexpectedly
如何防止我的堆栈视图像这样展开其中的项目?我想让stack view的高度根据里面的内容动态增加。
我目前的分发设置为 Equal Spacing
。如果我将分布更改为 fill
或 fill proportionally
,它要么大幅拉伸其中之一,要么在某些项目之间放置一个巨大的 space。
我的约束如下:
如果我去掉 height = 896
,我会收到一条错误消息,指出它需要对 Y 位置或高度进行约束。
对于每个项目,我只是设置高度锚点:
button.translatesAutoresizingMaskIntoConstraints = false
button.heightAnchor.constraint(equalToConstant: 50).isActive = true
如果你想让堆栈视图根据里面的内容动态调整它的大小,那么你应该明确指定堆栈视图中包含的所有项目的大小(除非内部视图可以根据内容调整自己的大小像 UILabel
) 并且不要为堆栈视图本身设置任何高度限制。
因此,在您的情况下,您需要为 UITextField
、UIButton
和 UITextView
设置高度限制。设置约束后,只需将分布设置为 fill
或 fillProportionally
(根据您的用例)
至于needs constraints for Y position or height
错误,给它一个Y position
而不是高度限制。
如何防止我的堆栈视图像这样展开其中的项目?我想让stack view的高度根据里面的内容动态增加。
我目前的分发设置为 Equal Spacing
。如果我将分布更改为 fill
或 fill proportionally
,它要么大幅拉伸其中之一,要么在某些项目之间放置一个巨大的 space。
我的约束如下:
如果我去掉 height = 896
,我会收到一条错误消息,指出它需要对 Y 位置或高度进行约束。
对于每个项目,我只是设置高度锚点:
button.translatesAutoresizingMaskIntoConstraints = false
button.heightAnchor.constraint(equalToConstant: 50).isActive = true
如果你想让堆栈视图根据里面的内容动态调整它的大小,那么你应该明确指定堆栈视图中包含的所有项目的大小(除非内部视图可以根据内容调整自己的大小像 UILabel
) 并且不要为堆栈视图本身设置任何高度限制。
因此,在您的情况下,您需要为 UITextField
、UIButton
和 UITextView
设置高度限制。设置约束后,只需将分布设置为 fill
或 fillProportionally
(根据您的用例)
至于needs constraints for Y position or height
错误,给它一个Y position
而不是高度限制。