我有一个字符串可以在Core Text中绘制,如下所示:
CGContextShowGlyphsAtPoint(context, 0, 0, glyphs, glyphCount);
效果很好。现在我需要单独绘制每个字形,在它们最终使用上面的那个很好的实用函数绘制的相同位置。而且我不是用英语做的,或者......有时在字形(diacritic)下方的字形下方有一个字形。
显然我需要这样的东西:
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>
}
不幸的是,我还没有弄清楚“某些数量”应该是什么......来自CGContextGetAdvancesForGlyphs
和/或CTFontGetVerticalTranslationsForGlyphs
和/或CGContextGetGlyphBBoxes
的某些指标组合是我的第一个猜测,但我尚未得到它的工作。
任何人都有解决方案/其他想法吗?
如果你想要一个测试字符串,请尝试అక్త్రిన్。
(背景:我需要逐个绘制字形,因为我想在我的应用程序中对各个字形的外观进行自定义)。