在 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)
我无法理解内容压缩和对标签的抵制。考虑:
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)