在 UIStackView 中为标签设置内容拥抱和压缩时出现问题

Trouble settings content hugging and compression for labels in UIStackView

我无法理解内容压缩和对标签的抵制。考虑:

let label1 = UILabel()
label1.text = "hello"
label1.textColor = .white
label1.backgroundColor = .red

let label2 = UILabel()
label2.text = "bye"
label2.textColor = .white
label2.backgroundColor = .blue

这些标签位于水平堆栈视图中。

let stackView = UIStackView(arrangedSubviews: [label1, label2])

这给出了以下内容:

我要红色标签紧贴内容,永不压缩。我添加这个:

label1.setContentHuggingPriority(.defaultHigh, for: .horizontal)

到目前为止看起来还不错,但是当蓝色标签中的文本太长时,我得到这个:

我尝试设置 label1.setContentCompressionResistancePriority(.defaultHigh, for: .horizontal),但没有任何区别。

我在这里做错了什么?希望获得有关如何解决此问题的建议。

谢谢

在这种情况下,

defaultHigh 的优先级不够。改为 required

label1.setContentHuggingPriority(.required, for: .horizontal)
label1.setContentCompressionResistancePriority(.required, for: .horizontal)