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>
 }

不幸的是,我还没有弄清楚“一些数量”应该是什么......来自CGContextGetAdvancesForGlyphs和/或CTFontGetVerticalTranslationsForGlyphs和/或的一些指标组合CGContextGetGlyphBBoxes是我的第一个猜测,但我还没有让它工作。

有人有解决方案/其他想法吗?

如果你想要一个测试字符串,试试అక్త్రిన్。

(背景:我需要一个一个地绘制字形,因为我想在我的应用程序中对单个字形的外观进行自定义)。

4

1 回答 1

1

在这里聚会晚了,但这个问题/答案组合显示了如何逐行计算布局,然后逐个字形计算布局。

Core Text在iOS中计算字母框架

于 2014-09-25T23:22:28.643 回答