我已经搜索过但尚未找到答案。
我想为iPhone 5和6设置不同的标签字体大小。我知道我可以为Compact Width设置特定的布局,但5和6都属于该组。有没有办法做到这一点?
答案 0 :(得分:1)
if UIScreen.mainScreen().bounds.size.height == 480 {
// iPhone 4
label.font = label.font.fontWithSize(20)
} else if UIScreen.mainScreen().bounds.size.height == 568 {
// IPhone 5
label.font = label.font.fontWithSize(20)
} else if UIScreen.mainScreen().bounds.size.width == 375 {
// iPhone 6
label.font = label.font.fontWithSize(20)
} else if UIScreen.mainScreen().bounds.size.width == 414 {
// iPhone 6+
label.font = label.font.fontWithSize(20)
} else if UIScreen.mainScreen().bounds.size.width == 768 {
// iPad
label.font = label.font.fontWithSize(20)
}
或者您可以使用Apple的API获取设备并执行其余逻辑来设置字体大小。请参阅this
答案 1 :(得分:1)
答案 2 :(得分:1)
我的助手扩展名:
extension UIFont {
static var sizeMultiplier: CGFloat {
return UIDevice.current.isPhone5 ? 0.85 : 1
}
static func regular(_ size: CGFloat) -> UIFont {
return UIFont(name: "SFUIText-Regular", size: size * sizeMultiplier)!
}
static func bold(_ size: CGFloat) -> UIFont {
return UIFont(name: "SFUIText-Bold", size: size * sizeMultiplier)!
}
}
用法:
titleLabel.font = .bold(16)
我也在寻找一种解决方案,在运行时属性中附加特定于iPhone5的大小。