Конец моего NSAttributedString
с emojis в содержимом не отформатирован. Я пытаюсь отформатировать всю строку (для упрощения) в этом примере установите цвет текста в белый, но некоторые из текста остаются неформатированными при вводе UILabel
.End of NSAttributedString с emojis оставлен неформатированным
В настоящее время я использую
let attributedString = NSMutableAttributedString(string: contents)
attributedString.addAttribute(
NSForegroundColorAttributeName,
value: UIColor.white,
range: NSMakeRange(0, contents.characters.count)
)
label.attributedText = attributedString
Я также пытался получать длину с помощью contents.utf8.count
, но получить тот же результат.
Я заметил, что число неформатированных символов совпадает с количеством эмоций в строке. Может ли это иметь какое-то отношение к тому, что происходит?
Ваше решение является правильным, но объяснение может быть улучшено (что такое Символ UTF?). - 'String.characters.count' подсчитывает расширенные кластеры графем, тогда как NSRange связан с NSString и подсчитывает кодовые точки UTF-16. Поэтому альтернативным решением было бы использовать «NSMakeRange (0, contents.utf16.count)», как в http://stackoverflow.com/a/30845969/1187415. –
Спасибо за ваше решение! Это хорошо работает. (Y) – Gati
Отлично работает. что задержка времени – Nookaraju