// create global width ratio constant and use it when your need
let _widthRatio : CGFloat = {
let ratio = _screenSize.width/375
return ratio
}()
//use constant
let font = UIFont.systemFont(ofSize: fontSize * _widthRatio)
// if you set font from storyboard then create subclass of your control
class YMWidthLabel: UILabel {
override func awakeFromNib() {
super.awakeFromNib()
font = font.withSize(font.pointSize * _widthRatio)
}
}
// Now bind YMWidthLabel class in storyboard
3条答案
按热度按时间2ul0zpep1#
如果,比如说,
UIFont.systemFont(ofSize: 16)
在4.7英寸iPhone上看起来不错(屏幕宽度为375 pt),但在较小的设备上太大,你可以尝试根据屏幕宽度缩放字体。字符串
对于insets,根据@FlorensvonBuchwaldt,使用Auto Layout将
UILabel
约束到其超级视图的边距,然后将layoutMargins
设置为缩放的inset.型
jpfvwuh42#
字符串
kpbwa7wx3#
为此,你可以使用AutoLayout。简单地将你的视图限制在你的超级视图的边缘。
字符串
使用视图控制器的边距,可以确保它在所有设备上都能正常工作。
对于字体大小- Apple为您提供了一种名为“preferredFontStyles”的东西,您可以在几乎所有情况下使用。因此,如果您希望按钮在所有设备上都具有正常的文本大小,只需执行以下操作:
型
或
型
等等等等。
希望这能帮助你掌握窍门