UIStackView 中标签的内容拥抱和压缩问题设置
Posted
技术标签:
【中文标题】UIStackView 中标签的内容拥抱和压缩问题设置【英文标题】:Trouble settings content hugging and compression for labels in UIStackView 【发布时间】:2020-12-10 04:23:35 【问题描述】:我在了解内容压缩和标签阻力方面遇到了问题。考虑:
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)
,但没有任何区别。
我在这里做错了什么?希望获得有关如何解决此问题的建议。
谢谢
【问题讨论】:
对不起,这是一个堆栈视图,更新了问题 如果你想让红色标签不被压缩,只需给它最小宽度并添加到堆栈视图。 【参考方案1】:defaultHigh
在这种情况下没有足够的优先级。改为将其设置为 required
。
label1.setContentHuggingPriority(.required, for: .horizontal)
label1.setContentCompressionResistancePriority(.required, for: .horizontal)
【讨论】:
以上是关于UIStackView 中标签的内容拥抱和压缩问题设置的主要内容,如果未能解决你的问题,请参考以下文章