为iPhone 5和6设置不同的字体大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为iPhone 5和6设置不同的字体大小相关的知识,希望对你有一定的参考价值。

我已经搜索过但尚未找到答案。

我想为iPhone 5和6设置不同的标签字体大小。我知道我可以为Compact Width设置特定的布局,但5和6都属于该组。有没有办法做到这一点?

答案

您可以获取iPhone的型号并将其与iPhone5,5s,5c,6进行比较,并相应地设置字体。您不应该使用硬编码的大小来获取设备型号,但您可以使用Apple的API获取它。请参考thisthis

另一答案
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 为不同的设备设置不同的字体大小?

Android 和 iPhone 的文本缩放不同

用尺寸等级区分 iphone 4 vs 5 vs 6 vs 6+ 肖像

iPhone 6 Plus 支持字体问题