为iPhone 5和6设置不同的字体大小
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为iPhone 5和6设置不同的字体大小相关的知识,希望对你有一定的参考价值。
我已经搜索过但尚未找到答案。
我想为iPhone 5和6设置不同的标签字体大小。我知道我可以为Compact Width设置特定的布局,但5和6都属于该组。有没有办法做到这一点?
答案
您可以获取iPhone的型号并将其与iPhone5,5s,5c,6进行比较,并相应地设置字体。您不应该使用硬编码的大小来获取设备型号,但您可以使用Apple的API获取它。请参考this和this。
另一答案
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
另一答案
我的助手扩展:
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的大小。
以上是关于为iPhone 5和6设置不同的字体大小的主要内容,如果未能解决你的问题,请参考以下文章
在 iphone 5 和 iphone 6 中动态设置字体大小
如何使用情节提要为不同的 iPhone 屏幕尺寸设置不同的字体尺寸?
如何使用 Xcode Storyboard 为不同的设备设置不同的字体大小?