Trying to get SF Pro Display Thin Italics on iOS
我正在用Swift编写一个iOS应用,我想使用系统字体SF Pro。但是,我似乎无法弄清楚如何在设置文本斜体字的同时设置字体粗细。我知道Helvetica Neue和
1 | UIFont(name:"HelveticaNeue-UltraLightItalic", size: 24.0) |
但是当使用系统字体时,我只能像这样做一个或另一个
1 | UIFont.italicSystemFont(ofSize: 24) |
或
1 | UIFont.systemFont(ofSize: 75.0, weight: UIFontWeightThin) |
我已经在Font Book中看到了SF Pro Display Thin Italic,并且我知道您可以在编辑诸如Sketch和Photoshop之类的应用程序中使用它,但是我还没有找到一种方法来让iOS显示它。
这里是一种方法:
1 2 3 4 5 | 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 |
这应该给您一些基础-例如将其转换为
在这里找到此扩展名
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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) } |
将扩展名用作:
1 | label.font = label.font.boldItalic() |
衬里(很丑):
1 | UIFont(descriptor: UIFont.systemFont(ofSize: 14, weight: .thin).fontDescriptor.withSymbolicTraits(.traitItalic)!, size: 14) |
1 | UIFont(name:"SanFranciscoText-LightItalic", size: 24.0) |
通常,使用此网站提供字体:http://iosfonts.com/