2009-02-04 9 views
15

In meinem iPhone-Projekt zurückgesetzt, ich habe eine UIView, wo ich die drawRect Methode implementieren:CGContext - ist es eine Möglichkeit, den aktuellen Kontext

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

Innerhalb der Methode, die ich eine ganze Reihe von Zeichnung zu tun von Linien, Bilder und Texte in diesem Kontext. Das Problem ist, dass der Kontext bei der erneuten Verwendung dieser Ansicht nicht zurückgesetzt wird. Gibt es eine Methode, die ich aufrufen kann, um den Kontext irgendwie zurückzusetzen?

+0

Was meinen Sie mit "den Kontext zurücksetzen"? –

+0

Ich meine, dass, wenn meine Sicht geht, um sich selbst zu zeichnen, es alles gemangelt ist, als ob es Dinge wie erinnert, wo ich zuletzt etwas zu – rustyshelf

Antwort

15

Sie können CGContextSaveGState (Kontext) und CGContextRestoreGState (Kontext) auschecken. Sie werden Sie den aktuellen Zustand des Kontexts pushen und pop-up machen.

Wenn Ihre Ansicht fehlerhaft ist, überprüfen Sie die Einstellung contentMode Ihrer Ansicht.

1

Sie können auch verwenden CGContextClearRect(context, CGRectMake(0, 0, width, height));

+1

Dies füllt den Kontext mit einer klaren Farbe, aber setzt keine Kontextstatusinformationen zurück (wie Ausschnitt usw.) – pauln

Verwandte Themen