如何使用字体名称加载iOS 13默认字体?

我对iOS 13系统字体有一个奇怪的问题。我正在尝试使用字体名称加载iOS默认字体San Francisco。但是由于某些iOS错误,它正在加载其他一些字体,例如Times New Roman。我没有看到像herehere这样的问题。但是在我的情况下,我必须使用名称加载字体,因为我正在使用Utility类在应用程序委托中全局设置字体名称。有什么方法可以在iOS 13中使用字体名称加载系统字体?

// Set font here
 MUIConstats.shared.defaultFontRegularName = UIFont.systemFont(ofSize: 17).fontName


 // Get font from here

 class func appFontRegularOf(size: CGFloat)-> UIFont{


        if let fontName = MUIConstats.shared.defaultFontRegularName {
            return UIFont(name:fontName,size: size) ?? UIFont.systemFont(ofSize:size)
        }else{
            return  UIFont.systemFont(ofSize:size)
        }

    }
song8615428 回答:如何使用字体名称加载iOS 13默认字体?

您可以存储非系统字体的名称,但是,如果它是系统字体,则唯一可以存储的是它是系统字体。这是工会的绝佳机会:

enum WhatFont {
    case system
    case name(String)
    func fontOfSize(_ sz:CGFloat) -> UIFont? {
        switch self {
        case .system: return UIFont.systemFont(ofSize: sz)
        case .name(let name): return UIFont(name: name,size: sz)
        }
    }
}

测试:

let f1 = WhatFont.system
print(f1.fontOfSize(17))
let f2 = WhatFont.name("Georgia")
print(f2.fontOfSize(17))
本文链接:https://www.f2er.com/3160036.html

大家都在问