UIFont(名称:UIFont.systemFont(ofSize:10)。fontName,大小:10)?。fontName==UIFont.systemFont(ofSize:10)。fontName在iOS13中为false

UIFont(名称:UIFont.systemFont(ofSize:10)。fontName,大小:10)?。fontName==UIFont.systemFont(ofSize:10)。fontName在iOS13中为false,ios,arrays,uifont,Ios,Arrays,Uifont,我尝试使用系统字体的字体名称创建UIFont实例 enum Font { static var scaleFactor: CGFloat = 1.0 case system(_ size: CGFloat) case systemBold(_ size: CGFloat) var dynamic: UIFont { switch self { case let .system(size): retur

我尝试使用系统字体的字体名称创建UIFont实例


enum Font {

    static var scaleFactor: CGFloat = 1.0

    case system(_ size: CGFloat)
    case systemBold(_ size: CGFloat)

    var dynamic: UIFont {
        switch self {
        case let .system(size):
            return UIFont(name: UIFont.systemFont(ofSize: 1).fontName, size: size * Font.scaleFactor)!
        case let .systemBold(size):
            return UIFont(name: UIFont.boldSystemFont(ofSize: 1).fontName, size: size * Font.scaleFactor)!
        }
    }
}
// UIFont.systemFont(ofSize: 10).fontName -> ".SFUI-Regular"
// but UIFont(name: UIFont.systemFont(ofSize: 10).fontName, size: 10)?.fontName -> "TimesNewRomanPSMT"
// and also UIFont(name: ".SFUI-Regular", size: 10)?.fontName -> "TimesNewRomanPSMT"
这样,我得到了另一种名为“TimesNewRomanPSMT”的字体,仅用于系统字体。我认为它在13号之前运作良好。 我正在macOS 10.15测试版上使用Xcode 11.0