在iOS上如何使用SF Pro Display Thin Italics字体?

4

我正在使用Swift编写iOS应用程序,希望使用系统字体SF Pro。然而,我似乎无法同时设置字体的粗细和斜体。我知道在Helvetica Neue中可以实现这一点。

UIFont(name: "HelveticaNeue-UltraLightItalic", size: 24.0)

但是当使用系统字体时,我似乎只能像这样做一件事或另一件事。
UIFont.italicSystemFont(ofSize: 24)

或者

UIFont.systemFont(ofSize: 75.0, weight: UIFontWeightThin)

我在字体册中看到了SF Pro Display Thin Italic,我知道你可以在像Sketch和Photoshop这样的编辑应用程序中使用它,但我还没有找到让iOS显示它的方法。
4个回答

8
这里有一种方法:
    var fnt = UIFont.systemFont(ofSize: 75.0, weight: UIFontWeightThin)
    if let dsc = fnt.fontDescriptor.withSymbolicTraits(.traitItalic) {
        fnt = UIFont(descriptor: dsc, size: 0)
    }
    labelOne.font = fnt

这将为您提供一些建立的基础 - 比如把它转化为一个扩展,使其更加灵活。


3

在这里找到了这个扩展 here

我在这里发现了这个扩展。
extension UIFont {

func withTraits(traits:UIFontDescriptorSymbolicTraits...) -> UIFont? {
    guard let descriptorL = self.fontDescriptor.withSymbolicTraits(UIFontDescriptorSymbolicTraits(traits)) 
    else{
        return nil
    }
    return UIFont(descriptor: descriptorL, size: 0)
}

func boldItalic() -> UIFont? {
    return withTraits(traits: .traitBold, .traitItalic)
}

使用扩展程序的方式如下:

label.font = label.font.boldItalic()

1
作为一个丑陋的在线程序员,可以这样写:
UIFont(descriptor: UIFont.systemFont(ofSize: 14, weight: .thin).fontDescriptor.withSymbolicTraits(.traitItalic)!, size: 14)

-3
UIFont(name: "SanFranciscoText-LightItalic", size: 24.0)

一般来说,使用这个网站获取字体:http://iosfonts.com/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接