iOS13的系统字体是什么?

时间:2019-09-03 06:39:30

标签: ios swift fonts

在iOS 13之前,我使用SFUIDisplay字体。

UIFont(name: ".SFUIDisplay-Light", size: UIFont.systemFontSize)

但是在iOS 13上它不起作用。 iOS 13系统字体是什么?

5 个答案:

答案 0 :(得分:4)

这个错误是BS。解决此问题的唯一方法是直接使用systemFont(ofSize:weight:)方法。再次,您无法使用方法UIFont(name:size:)获取系统字体,出于某些有趣的原因,您将仅获取Times New Roman。苹果开发人员一定在和我们搞混。因此,对于上面的原始问题,您必须使用以下代码:

UIFont(systemFont:UIFont.systemFontSize, weight: .light)

对于我来说,我遇到了一个错误,该错误为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)
    }
}

答案 1 :(得分:1)

font-family:“。SFCompactText-Regular”; font-weight:正常;字体样式:正常

答案 2 :(得分:0)

如果您打算使用系统字体,则不必担心它的名称,而应让系统为您完成。

let font = UIFont.systemFont(ofSize: UIFont.systemFontSize)

这时,只要系统字体更改,它就会自动更新。

此外

  

我使用了很多自定义字体。我需要做

实际上,您可以在不提及字体名称的情况下使用系统字体。例如,您可以实现一个函数,该函数返回正确的字体为:

func getFont(name: String = "", size: CGFloat = UIFont.systemFontSize) -> UIFont {
    // system font
    let defaultFont = UIFont.systemFont(ofSize: UIFont.systemFontSize)

    if name.isEmpty {
        return defaultFont
    }

    return UIFont(name: name, size: size) ?? defaultFont
}

要使用系统字体,请命名为:getFont()。否则,请提及字体名称来调用它:getFont(name: ".SFUIDisplay-Light")

但是,您可能会考虑执行以下操作来获取系统字体名称,然后使用它:

let systemFontName = UIFont.systemFont(ofSize: UIFont.systemFontSize).fontName
getFont(name: systemFontName)

我会说这毫无意义,因为UIFont.systemFont会自动检测系统字体名称而无需提及。

答案 3 :(得分:0)

它是“ 旧金山(SF)Pro 紧凑”字体。您可以在这里https://developer.apple.com/fonts/

进行检查

答案 4 :(得分:-1)

使用systemFont(ofSize: CGFloat) -> UIFont创建字体。

然后获得该字体的fontNamefamilyName

打印以上内容,您将获得当前iOS的答案;因此,请在iOS 13上运行它。