我有一个包含UIImageView和UILabel的StackView。有时,UILabel包含引号,有时则不包含引号。当它完成时,我希望UIImageView是设备宽度的40%-我可以用那部分工作。如果不是,我希望UIImageView仍然是相同的宽度,只是水平居中。实现此目的最简单的方法是什么?
答案 0 :(得分:1)
似乎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()
。
应该可以解决问题。