Проблема, с которой я столкнулся, заключается в том, что я хочу иметь возможность изменять textColor определенного текста в TextView. Я использую объединенную строку и просто хочу, чтобы строки, которые я добавляю в текст TextView. Похоже, что я хочу использовать именно это NSMutableAttributedString
, но я не нахожу никаких ресурсов о том, как использовать это в Swift. Пока что у меня есть что-то вроде этого:
let string = "A \(stringOne) with \(stringTwo)"
var attributedString = NSMutableAttributedString(string: string)
textView.attributedText = attributedString
Отсюда я знаю, что мне нужно найти диапазон слов, для которых нужно изменить свой textColor, а затем добавить их в строку с атрибутами. Что мне нужно знать, так это как найти правильные строки из attributedString, а затем изменить их textColor.
Поскольку у меня слишком низкий рейтинг, я не могу ответить на свой вопрос, но вот ответ, который я нашел
Я нашел свой ответ, переведя из перевода некоторого кода из
Изменить атрибуты подстрок в NSAttributedString
Вот пример реализации на Swift:
let string = "A \(stringOne) and \(stringTwo)"
var attributedString = NSMutableAttributedString(string:string)
let stringOneRegex = NSRegularExpression(pattern: nameString, options: nil, error: nil)
let stringOneMatches = stringOneRegex.matchesInString(longString, options: nil, range: NSMakeRange(0, attributedString.length))
for stringOneMatch in stringOneMatches {
let wordRange = stringOneMatch.rangeAtIndex(0)
attributedString.addAttribute(NSForegroundColorAttributeName, value: UIColor.nameColor(), range: wordRange)
}
textView.attributedText = attributedString
Поскольку я хочу изменить textColor нескольких строк, я сделаю вспомогательную функцию для обработки этого, но это работает для изменения textColor.