ios – 如何使用Xcode Storyboard为不同设备设置不同的字体大小?

前端之家收集整理的这篇文章主要介绍了ios – 如何使用Xcode Storyboard为不同设备设置不同的字体大小?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用 Xcode Storyboard为iPhone 5,iPhone 6 Plus,iPhone 7 Plus和iPhone X设置不同的字体大小.

有人可以提供任何建议吗?

解决方法

使用 Size-Class并从Label属性的Attribute Inspector添加字体的大小变化.

以下是不同的可能变体,您可以使用Size类进行设置:

试试这个:

这是iPhone和iPad中字体大小变化的(结果)预览

更新

使用IB(故事板)可能无法实现您期望的结果,但您可以使用以下程序化解决方案进行尝试:

extension UIDevice {


    enum DeviceType: String {
        case iPhone4_4S = "iPhone 4 or iPhone 4S"
        case iPhones_5_5s_5c_SE = "iPhone 5,iPhone 5s,iPhone 5c or iPhone SE"
        case iPhones_6_6s_7_8 = "iPhone 6,iPhone 6S,iPhone 7 or iPhone 8"
        case iPhones_6Plus_6sPlus_7Plus_8Plus = "iPhone 6 Plus,iPhone 6S Plus,iPhone 7 Plus or iPhone 8 Plus"
        case iPhoneX = "iPhone X"
        case unknown = "iPadOrUnknown"
    }

    var deviceType: DeviceType {
        switch UIScreen.main.nativeBounds.height {
        case 960:
            return .iPhone4_4S
        case 1136:
            return .iPhones_5_5s_5c_SE
        case 1334:
            return .iPhones_6_6s_7_8
        case 1920,2208:
            return .iPhones_6Plus_6sPlus_7Plus_8Plus
        case 2436:
            return .iPhoneX
        default:
            return .unknown
        }
    }
}


// Get device type (with help of above extension) and assign font size accordingly.
let label = UILabel()

let deviceType = UIDevice.current.deviceType

switch deviceType {

case .iPhone4_4S:
    label.font = UIFont.systemFont(ofSize: 10)

case .iPhones_5_5s_5c_SE:
    label.font = UIFont.systemFont(ofSize: 12)

case .iPhones_6_6s_7_8:
    label.font = UIFont.systemFont(ofSize: 14)

case .iPhones_6Plus_6sPlus_7Plus_8Plus:
    label.font = UIFont.systemFont(ofSize: 16)

case .iPhoneX:
    label.font = UIFont.systemFont(ofSize: 18)

default:
    print("iPad or Unkown device")
    label.font = UIFont.systemFont(ofSize: 20)

}
原文链接:https://www.f2er.com/iOS/334753.html

猜你在找的iOS相关文章