2013-10-13 17 views
5

In iOS 7, molte delle funzioni di disegno di testo CGContext sono stati deprecati in favore del Nucleo Testo:alternative CoreText alle funzioni di testo CGContext deprecate

Deprecated CGContext Functions

volte di Apple suggerisce alternative specifiche per funzioni deprecate (ad esempio, "l'uso x invece ") ma in questo caso," x "è semplicemente" Core Text ", che non è poi così specifico.

Quindi, se sono solo nello -drawRect: e ho il mio CGContextRef e sono pronto a chiamare CGContextShowGlyphsAtPoint(), cosa devo fare invece? Qual è la migliore pratica e qual è la più semplice sostituzione del testo principale che non richieda il refactoring di qualsiasi codice di disegno oltre quella chiamata (se esiste una cosa del genere)?

punti di bonus per una risposta che risponde in modo conciso questo per ciascuna delle funzioni di testo deprecate in quella pagina-io sono più interessato a CGContextShowGlyphsAtPoint(), ma questo potrebbe servire come un buon riferimento per altri che cercano alternative a una qualsiasi di queste funzioni.

+0

Si può dare una prova a 'CTFontDrawGlyphs'. Probabilmente dovrai fare alcuni calcoli, ma questo sembra il metodo migliore che ho visto. –

risposta

0

Credo che l'intenzione sia per CGContextShowGlyphsAtPoint essere sostituito da CGContextShowGlyphsAtPositions. È possibile ottenere le posizioni degli glifi con CTRunGetPositionsPtr o (se restituisce NULL), CTRunGetPositions.

AFAICT, CGContextShowGlyphsAtPositions sostituisce anche diverse altre funzioni CoreText precedenti, come CGContextShowGlyphs, CGContextShowText e CGContextShowTextAtPoint. Altre funzioni precedenti di CoreText come CGContextSelectFont sono sostituite da più nuove funzioni (in tal caso, CGContextSetFont e CGContextSetFontSize). Credo che questo sia del tutto auto-esplicativo leggendo the API.

Potrebbero esserci altre funzioni deprecate che non ho menzionato specificamente, ma immagino che tu abbia capito il punto.

Problemi correlati