[英]Font Sizing Per Device Programmatically
我试图更改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
在第一个模拟中,它比第三个模拟的要小。
不,不是。 这看起来像是因为iPhone 5S(640x1136点)的屏幕比iPhone Xs(1125x2436)的屏幕小。 此外,由于背景具有固定的约束,导致文本在所有设备上的大小都会改变,因此相对于背景而言文本看起来很小。
为了使您的文本在所有屏幕上的背景看起来都相似,您必须将UILabel
的顶部,顶部,底部和尾部约束设置为与超级视图相同(使用自定义常量)
...然后像您一样,为标签设置minimumScaleFactor
因此,如果将字体大小设置为20,则最大字体大小将为20。如果标签较小 (由于设置的限制而没有足够的空间),则标签将具有最大的字体大小。设置为最小比例因子。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.