我有一个可以在 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>
}
不幸的是,我还没有弄清楚“一些数量”应该是什么......来自CGContextGetAdvancesForGlyphs
和/或CTFontGetVerticalTranslationsForGlyphs
和/或的一些指标组合CGContextGetGlyphBBoxes
是我的第一个猜测,但我还没有让它工作。
有人有解决方案/其他想法吗?
如果你想要一个测试字符串,试试అక్త్రిన్。
(背景:我需要一个一个地绘制字形,因为我想在我的应用程序中对单个字形的外观进行自定义)。