Ho un'applicazione in cui sto facendo un disegno personalizzato, un gruppo di linee su uno sfondo sfumato, in questo modo (ignora il testo, sono solo UILabels) :Disegno grafica personalizzata su iPhone: CALayer vs CGContext
http://prehensile.co.uk/outgoing/Screenshot2010-06-09at12.22.32.png
al momento, questo è tutto fatto da iniziare un nuovo CGContext, disegno roba in esso con CGContextDrawLinearGradient e CGContextStrokePath, infine salvare l'immagine risultante con UIGraphicsGetImageFromCurrentImageContext. Le informazioni di posizionamento sono calcolate mentre sto impostando quelle etichette, quindi sarebbe una PITA (e una duplicazione di sforzi) per calcolarlo di nuovo quando l'UIView che contiene è disegnato con drawRect, quindi lo sto disegnando prima di tempo in una UIImmagine. Tutto funziona bene, finora tutto bene.
Tuttavia, ho un vago sospetto che potrebbe essere più efficiente utilizzare CALayers per fare questo disegno. La mia comprensione (superficiale) della differenza tra i due approcci è che un CALayer è più simile a un mucchio di istruzioni per disegnare cose, e quindi occupa meno memoria finché non viene effettivamente disegnato sullo schermo, mentre disegnare tutto in una UIImage in anticipo significa che hai una fantastica bitmap che ti dà sempre un'occhiata nella memoria, che sia disegnata o meno.
È una comprensione corretta? Qual è generalmente considerato il modo migliore per disegnare immagini personalizzate su iPhone?