CoreText是已弃用的CGContext文本函数的替代品

时间:2013-10-13 20:08:14

标签: ios ios7 core-graphics core-text

在iOS 7中,不推荐使用几个CGContext文本绘图函数,而选择了Core Text:

Deprecated CGContext Functions

有时Apple建议使用已弃用功能的特定替代方法(例如“使用x代替”),但在这种情况下,“x”只是“核心文本”,而不是那么具体。

所以,如果我只是在-drawRect:并且我已经获得CGContextRef并且我已准备好致电CGContextShowGlyphsAtPoint(),我该怎么做呢?什么是最佳实践,什么是最简单的核心文本替换,不需要重构除该调用之外的任何绘图代码(如果存在这样的事情)?

对于该页面上每个已弃用的文本函数简明回答这个问题的答案的奖励积分 - 我最感兴趣的是CGContextShowGlyphsAtPoint(),但这可以作为其他人寻求替代任何替代方案的良好参考这些功能。

1 个答案:

答案 0 :(得分:0)

我认为CGContextShowGlyphsAtPoint的意图是由CGContextShowGlyphsAtPositions取代。您可以使用CTRunGetPositionsPtr或(如果返回NULL),CTRunGetPositions获取字形位置。

AFAICT,CGContextShowGlyphsAtPositions也替换了其他几个以前的CoreText函数,例如CGContextShowGlyphsCGContextShowTextCGContextShowTextAtPoint。其他以前的CoreText函数(如CGContextSelectFont)被多个新函数替换(在这种情况下,CGContextSetFontCGContextSetFontSize)。我相信通过阅读the API,这一切都是不言自明的。

我可能没有特别提及其他已弃用的功能,但我认为你明白这一点。