【问题标题】:intrinsicContentSize.width's value is greater than specified widthAnchorintrinsicContentSize.width 的值大于指定的 widthAnchor
【发布时间】:2021-11-14 02:52:29
【问题描述】:

我有一个 UILabel,我添加了前导、尾随、顶部、底部、宽度和高度自动布局约束,在运行时出于某种原因,intrinsicContentSize 的值大于我为 widthAnchor 指定的值为 1000优先级。

我已附上屏幕截图以了解更多详细信息:

注意:

UILabel 的框架设置为 .zero,因为我使用的是自动布局,是的,translatesAutoresizingMaskIntoConstraints 设置为 false。

如何让 contentSize(intrinsicContentSize) 等于我指定的约束?

【问题讨论】:

    标签: swift autolayout uikit constraints uilabel


    【解决方案1】:

    在多个论坛上发布相同的问题后,这是我收到的解释。

    前导和尾随约束希望 UILabel 的宽度等于 365.25,但是 insintricContentSize 出于某种未知原因将其四舍五入为 365.5,可能是因为它是四分之一像素或其他原因.

    我做了什么来解决它:

    我得到365.25 的方式是UIScreen.main.bounds.width * 0.95,我将这个等式更改为ceil(UIScreen.main.bounds.width * 0.95),所以这是四舍五入,我们有一个完整的像素而不是四分之一。

    在我的情况下,这解决了问题,Apple 并没有在他们的布局引擎文档中真正指定此规则,希望这对将来的某人有所帮助。

    干杯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-20
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多