2013-01-23 8 views
6

Ich verwende eine MBProgressHUD Ansicht, um den Ladezustand anzuzeigen, wenn ich etwas aus dem Internet herunterlade. Wenn der Download beendet ist, rufe ich die Methode hide auf, um die Ansicht zu verbergen. Ich möchte einen Timer verwenden, um zu beurteilen, ob der Download abgeschlossen ist, indem ich die versteckte Methode der Ansicht, nämlich isHidden, überprüfe. Aber wenn ich die Ansicht der Ansicht auf YES einstelle, dann überprüfe die isHidden Methode, sie gibt NO zurück. Ich weiß nicht, warum die Ansicht so funktioniert?warum MBProgressHUD verstecken auf YES, aber isHidden-Methode ist NEIN?

einige Auszüge sind wie folgt:

MBProgressHUD *HUD; // instance variable 

Im Download beendet Methode:

[HUD hide:YES]; 
NSLog(@"HUD isHidden: %@",[HUD isHidden] ? @"YES" : @"NO"); 

Wenn die Methode aufgerufen wird, ist der Ausgang NO.

Antwort

5

Wie in der Implementierung von MBProgressHUD verbergen sie es nicht mit der versteckten Eigenschaft von UIView. Sie setzen das Alpha von MBProgressHUD auf 0, so dass es nicht sichtbar ist.

+0

Vielen Dank für Ihre Antwort, ich habe die Verstecken: Methode Implementierung überprüft. Wie Sie sagten, setzten sie den Alpha-Wert auf 0 und verwendeten die versteckte Eigenschaft von UIView nicht. Ich frage mich, ob sie die versteckte Eigenschaft aktualisieren sollten? – chancyWu

4

Ich fand, dass:

In MBProgressHUDisHidden Methode standardmäßig NO so eingestellt Sie alle Zeit bekommen NO (Wenn Sie überprüfen). Sie checken keine Superviews ein.

Zum Prüfen MBProgressHUD Status verstecken/anzeigen.

Set [HUD setHidden:YES]; nach [HUD hide:YES]; dann nach es wird gut funktionieren.

NSLog(@"HUD isHidden: %@",[HUD isHidden] ? @"YES" : @"NO"); 
//Output in consol YES 
+0

ja, du hast Recht. Ich habe die Versteckenimplementierung überprüft, den Alpha-Wert auf 0 geändert, um die Ansicht zu verbergen, und die versteckte Eigenschaft nicht aktualisiert. Und auf Ihre Art kann ich den versteckten Wert überprüfen. Danke Ihre Antwort. – chancyWu

+0

aber ich denke Rahuls Antwort ist besser für mich. Er zeigt mir die Verstecken-Implementierung. Ich werde für Sie wählen – chancyWu

+0

Sie sind willkommen :) – chancyWu