adjustsFontSizeToFitWidth
我们都清楚,默认为false
,如果设为true
,如果文本超过Label的宽度,则文本将自动缩放字体大小,最小缩放比例不小于minimumScaleFactor
的值。
而minimumScaleFactor
默认为0
,正常情况下我们只需设置adjustsFontSizeToFitWidth = true
即可在文本超过Label宽度时自动缩小。
但实际开发中在iOS14、iOS14.2的设备上偶然发现单独adjustsFontSizeToFitWidth = true
可能不起作用。(iOS12、iOS13、iOS14.5、iOS15中无问题,由于设备有限,无法确认所有存在问题的iOS版本范围)
override func viewDidLoad() {
super.viewDidLoad()
let label1 = UILabel(frame: .init(x: 100, y: 100, width: 45, height: 14))
label1.font = .systemFont(ofSize: 12)
label1.text = "76.09亿"
label1.adjustsFontSizeToFitWidth = true
let label2 = UILabel(frame: .init(x: 200, y: 100, width: 45, height: 14))
label2.font = .systemFont(ofSize: 12)
label2.text = "76.09亿"
label2.adjustsFontSizeToFitWidth = true
label2.minimumScaleFactor = 0.1
self.view.addSubview(label1)
self.view.addSubview(label2)
}
iOS14设备效果如下,左边的label没有设置minimumScaleFactor = 0.1,文本显示不全,如下图所示:
不知道这是不是苹果的bug,有更加权威的解释,欢迎评论区留言。
网友评论