Я пытаюсь создать NSAttributedString
, который имеет в основном только шрифт по умолчанию, курсив и отличается цветом текста. Довольно легко.NSAttributedString с UIFontWeightTraits
Теперь я хочу, чтобы различные подстроки всей строки до дополнительно быть жирным шрифтом. В основном это должно выглядеть так:
от John Smith от 25.08. в 8:00
(Просто в другой цвет.)
Похоже, я получаю словарь неправильно, что я прохожу в addAttributes(_:_:)
функции NSMutableAttributedString
«s. Из documentation, я понял, что этот словарь должен выглядеть следующим образом:
[UIFontDescriptorTraitsAttribute:
[UIFontWeightTrait: NSNumber(double: Double(UIFontWeightBold))]
Но это не похоже на работу. Все, что мне нужно, это курсивная строка. У меня явно что-то не так. Есть идеи?
Update: Добавление простой пример
// Preparation
let rawString = "from John Smith on 25.08. at 8:00"
let attributedString = NSMutableAttributedString(string: rawString)
let nameRange = (rawString as NSString).rangeOfString("John Smith")
let italicFont = UIFont.italicSystemFontOfSize(14)
// Make entire string italic: works!
attributedString.addAttributes([NSFontAttributeName : italicFont], range: NSMakeRange(0, 33))
// Make the name string additionally bold: doesn't work!
attributedString.addAttributes([UIFontDescriptorTraitsAttribute:
[UIFontWeightTrait: NSNumber(double: Double(UIFontWeightBold))]], range: nameRange)
// Show it on the label
attributedStringLabel.attributedText = attributedString
Спасибо!
Вы должны принять несколько строк атрибутов и объединить их в одну, чтобы показать. –
Вы имеете в виду, что я не могу добавить дополнительные после факта, используя вышеупомянутую функцию? – flohei