在iOS 13之前,我使用SFUIDisplay字体。
UIFont(name: ".SFUIDisplay-Light", size: UIFont.systemFontSize)
但是在iOS 13上它不起作用。iOS 13系统字体是什么?
这个bug太牛了。绕过它的唯一方法是systemFont(ofSize:weight:)直接使用该方法。又名,您无法使用该方法获取系统字体UIFont(name:size:),您只能出于某些有趣的原因获取 Times New Roman。苹果开发人员一定是在惹我们。因此,对于上面的原始问题,您必须使用以下内容:
UIFont(systemFont:UIFont.systemFontSize, weight: .light)
Run Code Online (Sandbox Code Playgroud)
对于我的情况,我遇到了这个错误,它进行了扩展UIFont以返回不同大小的相同字体,这必须与自定义字体和系统字体一起使用。为了让它在 xcode 11 ios 13 上工作,我不得不添加一个愚蠢的检查来查看是否fontName包含“.SF”。
extension UIFont {
func forSize(_ pointSize: CGFloat) -> UIFont {
if !fontName.contains(".SF"), let font = UIFont(name: fontName, size: pointSize) {
return font
}
return UIFont.systemFont(ofSize: pointSize, weight: weight)
}
}
Run Code Online (Sandbox Code Playgroud)
mea*_*ers -1
使用创建字体systemFont(ofSize: CGFloat) -> UIFont。
然后获取该字体的fontName和familyName。
打印上面的内容,你就得到了当前iOS的答案;所以在 iOS 13 上运行它。
| 归档时间: |
|
| 查看次数: |
1772 次 |
| 最近记录: |