#swift #nsattributedstring
#swift #nsattributedstring
Вопрос:
У меня есть RTF-файл, с помощью которого я смог получить содержимое в виде данных (я хочу, чтобы оно было в Data, чтобы использовать его в другом месте кода). Тем не менее, я хотел бы добавить стиль к AttributedString как шрифт, прежде чем присваивать label . Я понял, как применить эти атрибуты в приведенном ниже коде. Пожалуйста, посоветуйте, как я могу добиться того же. Вот мой код
let rtfData = getRTFData()
guard let data = rtfData else {
return
}
if let attributedString = try? NSAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.rtf], documentAttributes: nil) {
myLabel.attributedText = attributedString
}
Здесь я хотел добавить атрибуты в AttributedString, такие как
let boldAttributes: [NSAttributedString.Key: Any] = [.font: UIFont.boldSystemFont(ofSize: 14)]
и примените эти атрибуты к attributedText
Комментарии:
1. Вы хотите отказаться от исходных атрибутов (шрифта) или только сделать шрифт жирным и изменить его размер?
2. я просто хочу сделать шрифт жирным и изменить его размер
Ответ №1:
Если вы хотите добавить атрибут шрифта к существующим атрибутам, этот должен работать:
if let attributedString = try? NSMutableAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.rtf], documentAttributes: nil) {
var attrs = attributedString.attributes(at: 0, effectiveRange: nil)
attrs[NSAttributedString.Key.font] = UIFont.boldSystemFont(ofSize: 14)
attributedString.setAttributes(attrs, range: NSRange(location: 0, length: attributedString.length))
myLabel.attributedText = attributedString
}