UILabel 的内容大小不等于宽度锚点

Posted

技术标签:

【中文标题】UILabel 的内容大小不等于宽度锚点【英文标题】:UILabel's content size is not equal to the width anchor 【发布时间】: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 试过了,还是不行 您能否添加更多详细信息,标签完整约束? 【参考方案1】:

这里可以使用抗压优先,

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

检查下面的代码。

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

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

【讨论】:

很遗憾,这对我也不起作用......【参考方案2】:

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

【讨论】:

以上是关于UILabel 的内容大小不等于宽度锚点的主要内容,如果未能解决你的问题,请参考以下文章

多行 UILabel 与固有内容大小的 UILabel 宽度相同

以编程方式动态调整 uilabel 宽度的约束

IOS UILabe及UIFont用法总结

我想将自动布局应用于 UILabel,例如灵活的高度和宽度

iOS开发 UILabel实现自适应高宽

UITableView 中 UILabel 的大小类随机忽略