我有一个包含UIImageView和UILabel的StackView。有时UILabel包含引号,有时则不包含引号。如果它,我希望UIImageView是设备宽度的40% - 我有那个部分工作。当它不是我想要UIImageView仍然是相同的宽度,只是水平居中。最简单的方法是什么?
似乎UIStackView不是你真正需要的,而是简单的UIView
,它在父视图中垂直居中,并包含UIImageView
和UILabel
,然后设置imageView.trailing
等于label.leading
,再加上label.sizeToFit()
。
但是如果你想坚持你的设计,你可以做的是以编程方式设置UIStackView轴。例如,在IB中设置堆栈视图,如:
然后在viewDidLoad()
方法的代码中:
if label.text == "" {
stackView.axis = .vertical
} else {
stackView.axis = .horizontal
}
还有label.sizeToFit()
。
这应该够了吧。