CGContext - c'è un modo per ripristinare il contesto attuale
-
21-08-2019 - |
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?
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));