Si je comprends bien, une chaîne contient des glyphes et un glyphe peut être constitué de caractères individuels. Pour moi c'est un problème, car je voudrais changer la couleur de certains signes diacritiques dans une chaîne.Modification de la couleur de caractères individuels dans un glyphe
Disons que nous avons la chaîne suivante:
วาีม
Pour cette chaîne, je voudrais faire les consonnes une couleur différente car il est diacritique. I.e .: Je veux une couleur différente pour วาม
et ี
. De mes tests, il semble que je ne peux colorer que des glyphes individuels. Il semble que je ne puisse pas changer la couleur à un niveau de caractère (diacritique). Certains exemples de code:
let text = NSMutableAttributedString(string: "วาีม")
text.addAttribute(NSForegroundColorAttributeName, value: UIColor.blue, range: NSMakeRange(0, 1))
text.addAttribute(NSForegroundColorAttributeName, value: UIColor.red, range: NSMakeRange(1, 1))
text.addAttribute(NSForegroundColorAttributeName, value: UIColor.green, range: NSMakeRange(2, 1))
text.addAttribute(NSForegroundColorAttributeName, value: UIColor.orange, range: NSMakeRange(3, 1))
label.attributedText = text
Ce qui précède rendu comme suit:
Comme on le voit le diacritique n'est pas rendu avec une couleur verte.
Est-ce que quelqu'un sait s'il y a un moyen d'atteindre le résultat que je veux?
En fait, ils ne s'annuleront pas correctement pour plusieurs raisons. Tout d'abord, le glyphe avec le signe diacritique est une entrée complètement différente dans la police de caractères. Il n'y a aucune raison de croire que les formes du personnage «de base» sont les mêmes et souvent elles ne le sont pas (par exemple, pour s'adapter à des grands signes diacritiques). Deuxièmement, même s'ils ont la même forme, ils sont des anti-alias. Cela signifie que les bords ont des pixels partiellement transparents. Quand ils sont dessinés l'un sur l'autre, les couleurs vont se mélanger et vous aurez des franges étranges. –
Le problème de police est à propos, mais je ne suis pas sûr si le problème d'anti-aliasing est pertinent; Cela dépend du moment où cela se produit. –
Alors que je pourrais obtenir un résultat approprié en utilisant votre approche suggérée, antialiasing est en effet un problème. En tant que tel, ce n'est pas 100% du résultat final que j'aimerais atteindre. –