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

Geo*_* WS 6 core-graphics core-text ios ios7

在iOS 7中,不赞成使用几个CGContext文本绘图函数来支持Core Text:

不推荐使用的CGContext函数

Apple有时会建议使用已弃用的函数的特定替代方法(例如"使用x代替"),但在这种情况下,"x"只是"核心文本",并非完全具体.

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

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

Bri*_*din 2

我相信其目的是CGContextShowGlyphsAtPointCGContextShowGlyphsAtPositions取代。CTRunGetPositionsPtr您可以使用或 (如果返回NULL),来获取字形位置CTRunGetPositions

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

可能还有其他已弃用的函数我没有具体提及,但我想您已经明白了。