2011-09-23 18 views
5

Sto cercando di capire Quartz e ottenere il contesto su cui devi disegnare. Se ho una funzione in cui creo un contesto, ma poi chiamo un'altra funzione ad un altro disegno nello stesso contesto, devo passare il contesto dal primo metodo al successivo? O posso semplicemente usare UIGraphicsGetCurrentContext() per qualsiasi metodo CG che richiede un contesto poiché sto ancora disegnando nello stesso contesto?Informazioni su UIGraphicsGetCurrentContext()

risposta

13

Il docs for UIGraphicsGetCurrentContext() dicono:

L'attuale contesto grafico è pari a zero per impostazione predefinita. Prima di chiamare il suo drawRect: metodo, visualizzare gli oggetti inserisce un contesto valido nello stack, rendendolo attuale. Se non si sta utilizzando un oggetto UIView per eseguire il disegno , tuttavia, è necessario inserire manualmente un contesto valido nello stack utilizzando la funzione UIGraphicsPushContext.

Così, dopo aver chiamato UIGraphicsPushContext() con il contesto che hai creato, gli altri metodi possono accedere a tale contesto con UIGraphicsGetCurrentContext(). Se stai chiamando UIGraphicsGetCurrentContext() all'esterno di drawRect: e non hai impostato un contesto esplicitamente con UIGraphicsPushContext(), il contesto grafico corrente non è definito e sicuramente non è sicuro da usare.

+0

ecco un collegamento funzionante: https://developer.apple.com/documentation/uikit/1623918-uigraphicsgetcurrentcontext – DeveloperACE