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
相关产品推荐
相关产品推荐

