【问题标题】:Trouble settings content hugging and compression for labels in UIStackViewUIStackView 中标签的内容拥抱和压缩问题设置
【发布时间】: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),但没有任何区别。

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

谢谢

【问题讨论】:

  • 对不起,这是一个堆栈视图,更新了问题
  • 如果你想让红色标签不被压缩,只需给它最小宽度并添加到堆栈视图。

标签: ios swift uilabel


【解决方案1】:

defaultHigh 在这种情况下没有足够的优先级。改为将其设置为 required

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    • 2014-05-01
    • 2021-03-21
    • 1970-01-01
    • 2022-06-28
    • 1970-01-01
    • 2019-06-15
    相关资源
    最近更新 更多