2009-02-04 17 views
15

En mi proyecto de iPhone, Tengo un UIView donde poner en práctica el método de drawRect:CGContext - ¿Existe una manera de restablecer el contexto actual

- (void)drawRect:(CGRect)rect { 
    CGContextRef context = UIGraphicsGetCurrentContext(); 

Dentro del método que hago un montón de dibujo de líneas, imágenes y textos usando este contexto. El problema es que cuando reutilizo esta vista, el contexto no se restablece. ¿Hay algún método al que pueda llamar para restablecer el contexto de alguna manera?

+0

¿Qué quieres decir con "reiniciar el contexto"? –

+0

Quiero decir que cuando mi vista va a dibujarse de nuevo, está destrozada, como si recordara cosas como la última vez que moví algo a – rustyshelf

Respuesta

15

Es posible que desee ver CGContextSaveGState (context) y CGContextRestoreGState (context). Le permitirán presionar y mostrar el estado actual del contexto.

Si su vista se está "mutilando", verifique la configuración de contentMode de su vista.

1

También puedes utilizar CGContextClearRect(context, CGRectMake(0, 0, width, height));

+1

Esto llena el contexto de un color claro, pero no restablece ninguna información de estado de contexto (como recorte, etc.) – pauln

Cuestiones relacionadas