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



我在iOS 13系统字体方面遇到了一个奇怪的问题。我正在尝试使用字体名称加载iOS默认字体旧金山。但由于一些iOS错误,它正在加载一些其他字体,如Times New Roman。我在这里和这里很少看到这样的问题。但在我的情况下,我必须加载带有名称的字体,因为我正在使用一个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)
}
}

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

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))

相关内容

  • 没有找到相关文章

最新更新