Как сделать системный шрифт «Черный Курсив» в Swift? - PullRequest
1 голос
/ 19 октября 2019

Я пытаюсь добавить системный шрифт «Heavy» (не жирный), а также сделать его курсивом. Я видел другие решения StackOverflow, но, похоже, он не работает. Вот что я сделал:

let percentageLabel: UILabel = {
       let label = UILabel()
        label.text = "0"
        label.textAlignment = .center
        label.textColor = .white
        label.font = UIFont.systemFont(ofSize: 32, weight: .heavy, traits: .traitItalic)
       return label
    }()

Расширение, как указано в сообщении о переполнении стека

extension UIFont {

    static func systemFont(ofSize: CGFloat, weight: UIFont.Weight, traits: UIFontDescriptor.SymbolicTraits) -> UIFont? {
         let font = UIFont.systemFont(ofSize: ofSize, weight: weight)

         if let descriptor = font.fontDescriptor.withSymbolicTraits(traits) {
             return UIFont(descriptor: descriptor, size: ofSize)
         }

         return nil
     }
}

Дело в том, что когда я попробовал все предложенные решения, жирный и курсив, кажется, работает, НО черныйи курсив не работает. Он по-прежнему отображается как обычный курсив.

Ответы [ 2 ]

0 голосов
/ 20 октября 2019

Swift 5.0

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)
    }
}

Использование:

label.font = UIFont.systemFontItalic(size: 20.0, fontWeight: .black)

Выход:

enter image description here

0 голосов
/ 20 октября 2019

Попробуйте это

     label.font = UIFont.systemFont(ofSize: 32, weight: .black, traits: .traitItalic)
//If you just want Italic then use this
   labelInfo.font = UIFont.italicSystemFont(ofSize: 32)
...