2009-06-07 10 views
0

Als praktisches Beispiel wird in UIView drawRect aufgerufen, wenn setNeedsDisplay gesetzt ist. Ich möchte eine andere drawRect-Routine zum ersten Mal im Vergleich zum nachfolgenden Update aufgerufen werden. Zum Beispiel möchte ich, dass drawRect drawRectFirstTime zum ersten Mal aufruft und drawRect drawRectSubsequentUpdate für das nachfolgende setNeedsDisplay aufruft.Wie ändert man die Methoden-Versandtabelle in objective-c?

Wie sollte das in Objective-C gemacht werden?

Antwort

3

Von oben aus meinem Kopf:

- (void)drawRect:(NSRect)rect 
{ 
    static BOOL first = YES; 
    if (first == NO) 
    { 
     [self drawRectSubsequentUpdate:rect]; 
    } else { 
     [self drawRectFirstTime:rect]; 
     first = NO 
    } 
} 
+0

Dies funktioniert nur für ein UIView-Objekt. Ich nehme an, der OP wollte eine Lösung, die an allen Objekten funktioniert, nicht nur an der ersten. –

+0

Je komplizierter die Anforderungen, desto komplexer die Lösung. – stefanB

+0

Danke stefanB. Entschuldigung das ist nicht was ich suche. Der Hauptpunkt der Frage, wie man die Dispatch-Tabelle ändert, ist, das Einchecken von if-else in drawRect zu vermeiden. – Boon

Verwandte Themen