You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中UILabel设置自动适配宽度后字体大小仍返回10的原因咨询

Swift中UILabel设置自动适配宽度后字体大小仍返回10的原因咨询

嘿,我来帮你捋捋这个问题~ 先把你的代码贴出来方便参考:

label.font = UIFont(name: "NanumBarunGothic-YetHangul", size: 10)
label.numberOfLines = 0
label.minimumScaleFactor = 0.5
label.adjustsFontSizeToFitWidth = true

你疑惑为什么最终返回的字体大小还是10,而且猜测是文本刚好适配UILabel宽度所以没触发缩放——这个思路完全没问题!

咱们拆解下UILabel的自动缩放逻辑:当adjustsFontSizeToFitWidth设为true时,只有当文本用初始字体计算的宽度超过Label宽度时,系统才会自动缩小字体,直到文本能放下,或者触碰到你设置的minimumScaleFactor(这里是0.5,也就是最小到5号字)。

如果你的文本本身用10号字就能完全放进Label宽度里,系统根本没必要调整字体大小,所以label.font.pointSize自然还是你一开始设置的10。

另外还有个细节:你把numberOfLines设为0,Label会自动换行。如果文本可以通过换行来适配宽度(比如换行后每行都能在Label宽度内放下),那系统也不会去缩小字体,这也会导致字体大小保持初始的10。

总结来说,你猜的方向是对的:要么文本用10号字就能在Label里放下(单行或多行换行后),要么还没达到触发字体缩小的条件,所以字体大小依然是初始设置的10。

备注:内容来源于stack exchange,提问作者Cook Kim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 10:29:09