我正在尝试更改UILabel
的文本,以使每个设备的文本看起来完全相同。
在这里,我有4种不同的模拟器:8Plus, 7, 5s, XR
按此顺序。如您所见,这些文本看起来有所不同。在第一个模拟中,它比第三个模拟的要小。我如何才能使其缩放并在每个设备上看起来都一样,即文字尊重包装盒的尺寸?
let label = UILabel(frame: button.bounds)
label.text = "Done"
label.minimumScaleFactor = 0.2
label.textAlignment = .center
label.textColor = .white
label.font = UIFont(name: label.font.fontName, size: 20)
label.adjustsFontSizeToFitWidth = true
label.isUserInteractionEnabled = true
答案 0 :(得分:1)
在第一个模拟中,它小于第三个模拟。
不,不是。这看起来像是因为iPhone 5S(640x1136点)的屏幕比iPhone Xs(1125x2436)的屏幕小。此外,由于背景具有固定的限制条件,因此文本在背景上显得很小,这会导致在所有设备上调整其大小。
为使您的文本在所有屏幕上的背景看起来都相似,您必须将UILabel
的顶部,顶部,底部和尾部约束设置为等于超级视图(具有自定义常量)
...然后像您一样,为标签设置minimumScaleFactor
因此,如果将 font size 设置为20,则 maximum 字体大小将为20。如果标签应该较小(由于您设置的限制而没有足够的空间),标签将具有最大可能的字体大小,您将其设置为最小比例因子。