Implizite Animationen in deaktivieren - [CALayer setNeedsDisplayInRect:]

Habe ich eine Ebene mit einer komplexen Zeichnung code in seine -drawInContext: Methode. Ich bin versucht zu minimieren die Menge der Zeichnungen, die ich tun müssen, also ich bin mit -setNeedsDisplayInRect: Aktualisierung nur der geänderten Teile. Dies funktioniert prächtig. Allerdings, wenn das Grafik system-updates meine Schicht, es ist der übergang vom alten auf das neue Bild mit einem cross-fade. Ich möchte es umstellen sofort.

Ich habe versucht, mit CATransaction ausschalten, Aktionen und legen Sie die Dauer auf null, und weder die Arbeit. Hier ist der code, den ich verwende:

[CATransaction begin];
[CATransaction setDisableActions: YES];
[self setNeedsDisplayInRect: rect];
[CATransaction commit];

Gibt es eine andere Methode auf CATransaction sollte ich stattdessen verwenden (habe ich auch versucht -setValue:forKey: mit kCATransactionDisableActions, Gleiches Ergebnis).

InformationsquelleAutor der Frage Ben Gottlieb | 2010-02-11

Schreibe einen Kommentar