我正在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显示它的方法。
答案 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)