Установите другой размер шрифта для iPhone 5 и 6

Я искал, но не нашел ответа на этот вопрос.

Я хотел бы установить разные размеры шрифта для ярлыков для iPhone 5 и 6. Я знаю, что могу установить конкретный макет для Compact Width, но и 5, и 6 принадлежат к этой группе. Есть ли способ сделать это?

3 ответа

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 Apple и выполнить оставшуюся логику, чтобы установить размер шрифта. Пожалуйста, обратитесь это

Вы можете получить модель iPhone и сравнить ее с iPhone5, 5s, 5c, 6 и соответственно установить шрифт. Вы не должны использовать жестко запрограммированные размеры, чтобы получить модель устройства, но вы можете получить ее с помощью API Apple. Пожалуйста, обратитесь это и это.

Мое вспомогательное расширение:

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 в атрибутах времени выполнения.

Другие вопросы по тегам