私は理解しているように、文字列にはグリフがあり、グリフには個々の文字が含まれている可能性があります。私にとっては、文字列内のいくつかの発音区別記号の色を変更したいので、これは問題です。グリフ内の個々の文字の色を変更する
のは、我々は次の文字列があるとしましょう:私はそれは付加記号だとして別の色子音をしたいと思い、この文字列の場合
วาีม
。私はวาม
とี
の色を変えたい。
私のテストから、私は個々のグリフを色付けすることしかできないようです。私は文字(発音区別)レベルで色を変えることはできないようです。いくつかの例コード:
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
以下のようにレンダリングします:
としては、発音区別符号は緑色で描画されていないことが分かります。
私は望む結果を達成するための方法があるかどうかは知っていますか?
実際、いくつかの理由でそれらは正しくキャンセルされません。最初に、発音区別記号付きのグリフは、フォント内のエントリとは全く異なるエントリです。 「ベース」文字の形状が同じであり、しばしばそれらが同じではないと考える理由はありません(たとえば、高音区画に合うように)。第二に、たとえ同じ形であっても、アンチエイリアスです。つまり、エッジに部分的に透明なピクセルがあることを意味します。お互いの上に描かれると、色が混ざり合って奇妙な縞模様ができます。 –
フォントの問題はaproposですが、アンチエイリアスの問題が適切かどうかはわかりません。それはパイプラインにいつ起こるかによって決まります。 –
私はあなたの提案されたアプローチを使用して適切な結果を得ることができましたが、アンチエイリアスは本当に問題です。このように、達成したい最終結果は100%ではありません。 –