Я пишу приложение iOS с использованием Swift, которое работает с текстом, написанным на тайском языке, и пытаюсь выделить определенные c части символа. На тайском языке персонаж может состоять из нескольких скаляров Unicode, так как у персонажа на тайском языке могут быть другие символы, написанные над или под ним. Я хочу UILabel, который отображает текст следующим образом:
Второй символ содержит 2 скаляра Unicode. Я пытался сделать это с помощью NSMutableAttributedString, но он только кажется способным назначать атрибуты на уровне персонажа. Здесь, однако, я бы потребовал, чтобы это происходило на скалярном уровне Unicode. Поскольку эта концепция уже отражена в том факте, что существуют унифицированные скаляры, я думаю, что это должно быть возможно, но пока не удалось найти способ сделать это.
Вот то, чем я был пытаясь:
let val = inputThai.text!
let finalString = NSMutableAttributedString()
for ch in val {
for scalar in ch.unicodeScalars {
let thisString = NSMutableAttributedString(string: String(scalar))
if (...condition...) {
thisString.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.red, range: NSRange(location: 0, length: 1))
}
finalString.append(thisString)
}
}
Тем не менее, символ, выделенный красным, просто остается черным.
Кто-нибудь знает, как я мог это сделать sh? 1015 *