Я пытаюсь создать элементарную программу просмотра IDE / кода, и поэтому я пытаюсь раскрасить определенные слова в UITextView
. Я написал небольшой цикл, чтобы найти диапазоны, и другой, чтобы раскрасить слова в диапазоне на NSMutableAttributedString
. Я знаю, что диапазоны рассчитываются правильно, потому что оператор print в конце кода дает правильные индексы. Однако я наблюдаю очень странный результат в приложении (скриншот ниже). Есть идеи, что может пойти не так?
КОД
var ranges = [[Int]]()
var rcounter = 0
for word in content.components(separatedBy: [" ", "\n", "."]) {
if (word == "func") {
ranges.append([rcounter,rcounter+word.count])
}
rcounter += word.count
}
let attributedString = NSMutableAttributedString(string:content)
for range in ranges {
attributedString.addAttribute(NSAttributedStringKey.foregroundColor, value: UIColor.red, range: NSRange(location:range[0],length:range[1])
}
textView.attributedText = attributedString
print(ranges) // [[0, 4], [288, 292]]
РЕЗУЛЬТАТ