Ответ 1
Вы делаете 2 ошибки в своем коде.
-
setAttributes
нужен словарь, а не массив - когда вы используете атрибут
string
, вы получите толькоstring
, все атрибуты будут потеряны.
Чтобы добавить или изменить атрибуты в атрибутированной строке, он должен быть изменен. Вы получаете только NSMutableString
из атрибута attributedText
. Если вы хотите изменить его, создайте из него измененную версию и измените ее. Затем вы можете установить атрибут attributedText в новую изменяемую версию.
Если вы можете указать атрибутную строку в качестве аргумента, я приведу вам пример, который работает:
func setFontFor(attrString: NSAttributedString) -> NSMutableAttributedString {
var mutableAttrString: NSMutableAttributedString = NSMutableAttributedString(attributedString: attrString)
let headerStart: Int = 0
let headerEnd: Int = 13
mutableAttrString.addAttribute(NSFontAttributeName, value: UIFont.boldSystemFontOfSize(18.0), range: NSMakeRange(headerStart, headerEnd))
return mutableAttrString
}
Использование:
myLabel.attributedText = setFontFor(myLabel.attributedText)
Как вы можете видеть, я использовал свойство attributedText
класса UILabel
, он также работает для UITextView
и других. Если у вас есть другой ярлык, вы можете создать новую NSAttributedString с инициализатором NSAttributedString(normalString)
, как вы уже использовали в вопросительном коде.