1

次のように Core Text にペイントできる文字列があります。

CGContextShowGlyphsAtPoint(context, 0, 0, glyphs, glyphCount);

よく働く。ここで、これらの各グリフを個別にペイントする必要があります。これは、上記の優れたユーティリティ関数を使用してペイントされるのと同じ場所です。また、私は英語でもそれを行っていません...時々、グリフの下にグリフの下にグリフがあります(分音記号)。

明らかに、次のようなものが必要です。

 CGPoint pt = CGPointMakeZero;
 for (int i = 0; i < glyphCount; i++) {
     CGContextShowGlyphsAtPoint(context, pt.x, pt.y, glyphs[i], 1);

     pt.x += <some quantity>
     pt.y += <some quantity>
 }

残念ながら、「いくつかの量」がどうあるべきかはまだわかりません... CGContextGetAdvancesForGlyphsand/or CTFontGetVerticalTranslationsForGlyphsand/ or からのメトリックの組み合わせCGContextGetGlyphBBoxesが私の最初の推測でしたが、まだ機能していません。

誰にも解決策/他のアイデアがありますか?

テスト文字列が必要な場合は、అక్త్రిన్ を試してください。

(背景: アプリで作成したい個々のグリフの外観をカスタマイズするため、グリフを 1 つずつペイントする必要があります)。

4

1 に答える 1

1

ここでのパーティーにはかなり遅れましたが、この質問と回答の組み合わせは、レイアウトが行ごとに計算され、次にグリフごとに計算される方法を示しています。

Core Text は iOS で文字枠を計算します

于 2014-09-25T23:22:28.643 に答える