Domanda

Nel mio progetto iPhone, ho un UIView dove ho implementare il metodo drawRect:

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

All'interno del metodo che faccio un sacco di disegno di linee, immagini e testi che utilizzano questo contesto. Il problema è che quando ho ri-utilizzare questa vista, il contesto non viene azzerato. Esiste un metodo che posso chiamare per ripristinare il contesto in qualche modo?

È stato utile?

Soluzione

Si potrebbe voler controllare CGContextSaveGState (contesto) e CGContextRestoreGState (contesto). Essi vi permetterà di push e pop lo stato attuale del contesto.

Se il vostro punto di vista è sempre 'straziato', controllare l'impostazione contentMode del vostro punto di vista.

Altri suggerimenti

È inoltre possibile utilizzare CGContextClearRect(context, CGRectMake(0, 0, width, height));

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top