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

Ios 为iPhone 5和6设置不同的字体大小,ios,objective-c,iphone,resize,font-size,Ios,Objective C,Iphone,Resize,Font Size,我已经寻找了,但还没有找到答案 我想为iPhone 5和6设置不同的标签字体大小。我知道我可以为紧凑型宽度设置特定布局,但5和6都属于该组。有办法做到这一点吗 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和6设置不同的标签字体大小。我知道我可以为紧凑型宽度设置特定布局,但5和6都属于该组。有办法做到这一点吗

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)

}

或者,您可以使用苹果的API获取设备,并执行其余的逻辑来设置字体大小。请参考

您可以获得iPhone的型号,并将其与iPhone 5、5s、5c、6进行比较,然后相应地设置字体。您不应该使用硬编码的大小来获取设备型号,但可以通过苹果的API来获取。请参阅和。

我的助手分机:

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特定的大小。

是否使用自动布局?这样你就可以很容易地完成这项任务。在属性检查器中,您将在字体选项之前获得+选项。您可以在其中设置乘数value@amelie... 见下面贴出的答案。我发现有一个答案是正确的。谢谢@阿育王你的答案是正确的。昨天我也因为同样的原因被连根拔起。欢迎。您不应该使用硬编码的大小来获取设备型号谢谢,我会检查它。