试图在iOS上获得SF Pro Display Thin Italics

时间:2017-07-11 13:34:14

标签: ios swift

我正在Swift中编写一个iOS应用程序,我想使用系统字体SF Pro。但是,我似乎无法弄清楚如何在使文本斜体的同时设置字体粗细。我知道这可能与Helvetica Neue合作

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

但是当使用系统字体时,我似乎只能像这样做一个

UIFont.italicSystemFont(ofSize: 24)

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

我在Font Book中看过SF Pro Display Thin Italic,我知道你可以用它来编辑Sketch和Photoshop等应用程序,但我还没有找到让iOS显示它的方法。

4 个答案:

答案 0 :(得分:3)

这是一种方法:

    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

这应该可以为您提供一些建议 - 例如将其变为extension以使其变得灵活。

答案 1 :(得分:1)

找到此扩展程序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()

答案 2 :(得分:0)

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

通常,请将此网站用于字体:http://iosfonts.com/

答案 3 :(得分:0)

作为(一个丑陋的)在线:

UIFont(descriptor: UIFont.systemFont(ofSize: 14, weight: .thin).fontDescriptor.withSymbolicTraits(.traitItalic)!, size: 14)