2013-10-13 55 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這一切都是不言自明的。

可能還有其他我不特別提及的棄用功能,但我想你明白了。