执行此命令时:

let l = UILabel()
let f = l.font!
let f8 = UIFont(name: f.fontName, size: f.pointSize + 8)!
NSLog("\(f.fontName)")
NSLog("\(f8.fontName)")


日志输出:

.SFUI-Regular
TimesNewRomanPSMT


当我要求相同的字体但稍大一些时,为什么不再有旧金山的变体了?这是iOS中的错误吗?

当我做

let f8 = f.withSize(f.pointSize + 8)


相反,我确实获得了.SFUI-Regular。

最佳答案

使用f.familyName而不是f.fontName

姓:https://developer.apple.com/documentation/uikit/uifont/1619033-familyname

字体名称:https://developer.apple.com/documentation/uikit/uifont/1619024-fontname

另外,init(name:size)中的fontName必须包含全名,包括familyName:https://developer.apple.com/documentation/uikit/uifont/1619041-init

关于ios - 要求使用不同大小的旧金山字体会在iOS 13.1上返回Times New Roman变体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59105193/

10-10 20:38