Я работаю с текстом. У меня есть несколько массивов диапазонов текстовых атрибутов, но когда я применяю курсив к тексту, который уже имеет жирные атрибуты, мои смелые атрибуты исчезают. Как я могу применить текст атрибутов, чтобы в этом случае стать boldItalic? Или я должен найти пересечение моих смелых и курсивных диапазонов, чтобы применить boldItalic атрибуты?Атрибуты в строке
Например, у меня есть «Это мой текст», и я хочу, чтобы получить «Это является м у текста»
К сожалению, для бедных английского. Это часть моего кода
func attributedArticleText()-> NSMutableAttributedString {
let attString = NSMutableAttributedString(attributedString:NSAttributedString(string: articleText))
if let strong = attributes?.strong {
for range in strong {
attString.addAttributes([NSFontAttributeName : UIFont(name: "SFUIDisplay-Bold", size: 12.0)!], range: range.range())
}
}
if let italic = attributes?.italic {
for range in italic {
attString.addAttributes([NSFontAttributeName : UIFont(name: "SFUIText-LightItalic", size: 12.0)!], range: range.range())
}
}
if let underLined = attributes?.underline {
for range in underLined {
attString.addAttributes([NSUnderlineStyleAttributeName: 1], range: range.range())
}
}
if let cross = attributes?.cross {
for range in cross {
attString.addAttributes([NSStrikethroughStyleAttributeName: 1], range: range.range())
}
}
return attString
}
Как я понял, вы говорите, что, когда я добавление новых атрибутов, я на самом деле не добавляю новые, я меняю уже применяемые? –
да, но его также зависит от диапазона, в котором вы проходите, если диапазон одинаковый, то текущий атрибут будет отражаться, а старший будет потерян. –
. Что вам нужно, выделение жирным шрифтом, если я понял вашу проблему, тогда вы должны выбрать соответствующий шрифт. Попробуйте что-то вроде 'BoldItalic', если ваш шрифт поддерживает, так как я вижу, что вы используете разные шрифты' SFUIDisplay' и 'SFUIText' - разные шрифты –