intrinsicContentSize.width 的值大于指定的 widthAnchor
Posted
技术标签:
【中文标题】intrinsicContentSize.width 的值大于指定的 widthAnchor【英文标题】:intrinsicContentSize.width's value is greater than specified widthAnchor 【发布时间】:2021-11-14 02:52:29 【问题描述】:我有一个 UILabel,我添加了前导、尾随、顶部、底部、宽度和高度自动布局约束,在运行时出于某种原因,intrinsicContentSize 的值大于我为 widthAnchor 指定的值为 1000优先级。
我已附上屏幕截图以了解更多详细信息:
注意:
UILabel 的框架设置为 .zero,因为我使用的是自动布局,是的,translatesAutoresizingMaskIntoConstraints 设置为 false。
如何让 contentSize(intrinsicContentSize) 等于我指定的约束?
【问题讨论】:
【参考方案1】:在多个论坛上发布相同的问题后,这是我收到的解释。
前导和尾随约束希望 UILabel
的宽度等于 365.25,但是 insintricContentSize 出于某种未知原因将其四舍五入为 365.5
,可能是因为它是四分之一像素或其他原因.
我做了什么来解决它:
我得到365.25
的方式是UIScreen.main.bounds.width * 0.95
,我将这个等式更改为ceil(UIScreen.main.bounds.width * 0.95)
,所以这是四舍五入,我们有一个完整的像素而不是四分之一。
在我的情况下,这解决了问题,Apple 并没有在他们的布局引擎文档中真正指定此规则,希望这对将来的某人有所帮助。
干杯。
【讨论】:
以上是关于intrinsicContentSize.width 的值大于指定的 widthAnchor的主要内容,如果未能解决你的问题,请参考以下文章