SetNeedsDisplay funktioniert nicht

7

Ich habe viele Threads gesehen, die mit diesem Problem zu tun haben, aber keine behandelt meinen Fall (denke ich).

Mein Fall sollte einfach sein, ich habe eine benutzerdefinierte UIView in meinem Controller, von meinem Controller verwende ich die [ self.myView setNeedsDisplay ] und es funktioniert perfekt.

Ich habe Probleme, wenn ich versuche, dies innerhalb von UIView selbst aufzurufen ... Ich habe eine Benachrichtigung von einer anderen Klasse gesendet und sie wird von meiner Ansicht (das funktioniert) mit den Informationen empfangen es passiert, ich aktualisiere interne Eigenschaften dieser Ansicht und dann rufe ich die [self setNeedsDisplay ] an, die meinen Bildschirm mit den neuen Zuständen aktualisieren möchte, aber nichts passiert, ich habe ein NSLOG in meinem drawRec verwendet Methode, und es wird nicht zu diesem Zeitpunkt aufgerufen, es wird nur aufgerufen, wenn meine Controller-Klasse setNeedsDisplay aufrufen, und wenn das passiert, wird das Update, das zuvor geschehen sollte, auf dem Bildschirm angezeigt ... Ich weiß es nicht warum es nicht vorher aktualisiert ...

Hier ist ein Code:

Mein Controller fragt nach Update: (funktioniert OK!)

%Vor%

Meine Benachrichtigungsmethode, die versucht, meine Zeichnung zu aktualisieren: (funktioniert nicht!)

%Vor%

Ich gebe hier nicht mein drawRect ein, weil es funktioniert, das Problem ist, dass es nicht von meinem UIView setNeedsDisplay aufgerufen wird!

Jeder hat eine Idee, warum das nicht funktioniert ????

    
Plauto Abreu 17.12.2012, 14:46
quelle

2 Antworten

25

Nach vielen Tests habe ich etwas gesehen, das mit Threads zu tun hat und das fact setNeedsDisplay sollte nur in mainThread aufgerufen werden ... Außerdem habe ich in diesen Klassen nie einen separaten Thread gestartet, sondern die Klasse, die die Benachrichtigung ausgelöst hat, war in einem sekundären Thread ... und genau das verursachte das Problem ...

um es zu lösen Ich habe nur gezwungen, setNeedsDisplay im Hauptthread aufgerufen werden.

%Vor%

Schnell 3:

%Vor%     
Plauto Abreu 20.12.2012, 13:05
quelle
1

Ich denke, der richtige Weg, es zu benutzen, ist:

%Vor%

Obwohl ich immer Probleme habe, das zu funktionieren: (

    
Ronald Hofmann 07.01.2013 05:44
quelle

Tags und Links