2013-10-13 91 views
5

在iOS系统7,有几个CGContext上的文字绘图功能CoreText方案有利于核心文本被弃用:到弃用CGContext上的文本功能

Deprecated CGContext Functions

有时苹果提出具体的替代弃用功能(例如“使用x代替“),但在这种情况下,”x“仅仅是”核心文本“,并非全部具体。

所以,如果我只是在-drawRect:,并且我已经有我的CGContextRef,并且我准备致电CGContextShowGlyphsAtPoint(),我该怎么做呢?最佳做法是什么?最简单的核心文本替换是什么?不需要重构超出该调用的任何图形代码(如果存在这种情况)?

对于该页面上每个不赞成使用的文本函数,我都会对CGContextShowGlyphsAtPoint()最感兴趣的答案简明地回答这个问题的答案的奖励分数,但这可以作为其他人寻求这些函数的替代方案的良好参考。

+0

您可以尝试'CTFontDrawGlyphs'。你可能需要做一些计算,但这似乎是我见过的最好的方法。 –

回答

0

我相信其意图是CGContextShowGlyphsAtPoint被替换为CGContextShowGlyphsAtPositions。您可以使用CTRunGetPositionsPtr或(如果返回NULL),CTRunGetPositions获得字形位置。

AFAICT,CGContextShowGlyphsAtPositions也取代了其他一些前CoreText功能,如CGContextShowGlyphs,CGContextShowTextCGContextShowTextAtPoint。其他前CoreText功能(如CGContextSelectFont)被替换为多个新功能(在这种情况下,CGContextSetFontCGContextSetFontSize)。我相信通过阅读the API这一切都是不言自明的。

可能还有其他我不特别提及的弃用功能,但我想你明白了。