UILabel 的内容大小不等于宽度锚点
Posted
技术标签:
【中文标题】UILabel 的内容大小不等于宽度锚点【英文标题】:UILabel's content size is not equal to the width anchor 【发布时间】:2021-11-13 23:17:57 【问题描述】:我使用NSLayoutConstraint
和widthAnchor
将我的UILabel 限制为恒定宽度,问题是UILabel
的contentSize
不等于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 的内容大小不等于宽度锚点的主要内容,如果未能解决你的问题,请参考以下文章