【问题标题】:UILabel's content size is not equal to the width anchorUILabel 的内容大小不等于宽度锚点
【发布时间】:2021-11-13 23:17:57
【问题描述】:

我使用NSLayoutConstraintwidthAnchor 将我的UILabel 限制为恒定宽度,问题是UILabelcontentSize 不等于widthAnchor,在某些情况下大于我指定了。

为什么会这样?附言我是 iOS 开发的初学者,如果答案很明显,我深表歉意。

编辑: UILabel 的宽度被限制为小数点值,根据另一个论坛上的一位用户的说法,这导致 UILabel 向上舍入到下一个 0.5 倍数,这导致整个系统崩溃。我的工作是 ceil() 我的 UILabel 的宽度。感谢所有提供帮助的人。

【问题讨论】:

  • 试试label.setContentCompressionResistancePriority(UILayoutPriority(rawValue: 1000), for: .horizontal)
  • @MohmmadS 这对我不起作用...
  • 我已经更新了,再试一次也将宽度的优先级设置为 500 或 750
  • @MohmmadS 试过了,还是不行
  • 您能否添加更多详细信息,标签完整约束?

标签: swift autolayout uikit constraints uilabel


【解决方案1】:

这里可以使用抗压优先,

  1. WidthAnchor 设置较低的优先级
  2. 例如将内容压缩阻力优先级设置为 1000(高于宽度锚点)

检查下面的代码。

label.setContentCompressionResistancePriority(UILayoutPriority(rawValue: 1000), for: .horizontal)

article 可能对您的情况有所帮助。

【讨论】:

  • 很遗憾,这对我也不起作用......
【解决方案2】:

UILabel 的宽度被限制为小数点值,根据另一个论坛上的一位用户的说法,这导致 UILabel 向上舍入到下一个 0.5 倍数,这导致整个系统崩溃。我的工作是 ceil() 我的 UILabel 的宽度。感谢所有提供帮助的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 2019-12-14
    相关资源
    最近更新 更多