[英]Making UIFont Black/Heavy and Italic
如何為 label重斜體設置字體?
SO中的示例不起作用:
labelCurrentDate.font = UIFont(descriptor: UIFont.systemFont(ofSize: 32, weight: .black).fontDescriptor.withSymbolicTraits(.traitItalic)!, size: 32)
也不起作用:
extension UIFont {
static func systemFontItalic(size fontSize: CGFloat = 17.0, fontWeight: UIFont.Weight = .regular) -> UIFont {
let font = UIFont.systemFont(ofSize: fontSize, weight: fontWeight)
return UIFont(descriptor: font.fontDescriptor.withSymbolicTraits(.traitItalic)!, size: fontSize)
}
}
編輯:
我的“真實”代碼:
@IBOutlet weak var labelCurrentDate: UILabel! {
didSet {
labelCurrentDate.font = UIFont(descriptor: UIFont.systemFont(ofSize: 32, weight: .black).fontDescriptor.withSymbolicTraits(.traitItalic)!, size: 32)
labelCurrentDate.textColor = colorLightMainText
}
}
我的結果:
如您所見,我的 label 文本粗細不是“黑色”——它是正常的字體粗細,但我希望它是黑色的。
我是這樣測試的:
let weights : [UIFont.Weight] = [
.ultraLight, .thin, .light, .regular,
.medium, .semibold, .bold, .heavy, .black
]
var top : CGFloat = 25
for weight in weights {
let desc = UIFont.systemFont(ofSize: 32).fontDescriptor.addingAttributes([
UIFontDescriptor.AttributeName.traits: [
UIFontDescriptor.TraitKey.weight:
weight.rawValue,
UIFontDescriptor.TraitKey.symbolic:
UIFontDescriptor.SymbolicTraits.traitItalic.rawValue
]
])
let lab = UILabel()
lab.font = UIFont(descriptor: desc, size: 0)
lab.text = "This is a test"
lab.sizeToFit()
lab.frame.origin = CGPoint(x: 20, y: top)
self.view.addSubview(lab)
top += lab.bounds.height + 8
}
這就是我所看到的:
所以在我看來,我們正在以斜體字體樣式獲得所有不同的權重。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.