簡體   English   中英

使 UIFont 黑色/沉重和斜體

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM