___ answer1956028 ___

Normalerweise mache ich:

%Vor%     
___ answer39814493 ___

Bei Bedarf schnelle 3-Version:

%Vor%     
___ answer1960998 ___

Ok, tut mir leid, als wäre ich durch meinen Code gegangen.

Ich habe den Indikator folgendermaßen beendet:

%Vor%

Nach einem Durchlauf wurde der activityIndicator vollständig entfernt.

    
___ answer13950480 ___

Diese Frage ist sehr nützlich. Aber eine Sache, die in der Antwort fehlt, ist, dass alles, was lange braucht, in einem separaten Thread ausgeführt werden muss, nicht die UIActivityIndicatorView. Auf diese Weise reagiert es nicht mehr auf die Benutzeroberfläche.

%Vor%     
___ tag123iphone ___ Verwenden Sie diesen Tag NICHT, es sei denn, Sie wenden sich speziell an Apple's iPhone und / oder iPod touch. Verwenden Sie für nicht hardwareabhängige Fragen das Tag [ios]. Weitere zu betrachtende Tags sind [xcode] (aber nur, wenn es sich um die IDE selbst handelt), [swift], [objective-c] oder [cacao-touch] (aber nicht [cocoa]). Bitte verzichten Sie auf Fragen zum iTunes App Store oder zu iTunes Connect. Wenn Sie C # verwenden, markieren Sie mit [mono]. ___ tag123uactivityindicatorview ___ Unter iOS können Sie einen Aktivitätsindikator verwenden, um anzuzeigen, dass eine Aufgabe ausgeführt wird. Eine Aktivitätsanzeige erscheint als "Zahnrad", das sich dreht oder stoppt. Sie steuern, wann ein Aktivitätsindikator animiert wird, indem Sie die Methoden startAnimating und stopAnimating aufrufen. Um den Aktivitätsindikator beim Beenden der Animation automatisch auszublenden, legen Sie die Eigenschaft "hidesWhenStopped" auf YES fest. ___ answer18418439 ___

Alle UI-Elemente müssen sich im Haupt-Thread befinden

%Vor%

dann:

%Vor%     
___ qstntxt ___

Wenn ich startAnimating für eine UIActivityIndicatorView aufruft, wird sie nicht gestartet. Warum ist das?

[Dies ist eine Blog-artige selbstbeantwortete Frage. Die Lösung unten funktioniert für mich, aber vielleicht gibt es andere, die besser sind?]

    
___ answer1850228 ___

Wenn Sie Code wie folgt schreiben:

%Vor%

Sie erteilen der Benutzeroberfläche keine Zeit, um den Aktivitätsindikator tatsächlich zu starten und zu stoppen, da sich Ihre gesamte Berechnung auf den Hauptthread bezieht. Eine Lösung besteht darin, startAnimating in einem separaten Thread aufzurufen:

%Vor%

Oder Sie könnten Ihre Berechnung in einen separaten Thread einfügen und warten, bis sie beendet ist, bevor Sie stopAnimation aufrufen.

    
___

8

Wenn ich startAnimating für eine UIActivityIndicatorView aufruft, wird sie nicht gestartet. Warum ist das?

[Dies ist eine Blog-artige selbstbeantwortete Frage. Die Lösung unten funktioniert für mich, aber vielleicht gibt es andere, die besser sind?]

    
jonnyv 04.12.2009, 22:52
quelle

6 Antworten

16

Wenn Sie Code wie folgt schreiben:

%Vor%

Sie erteilen der Benutzeroberfläche keine Zeit, um den Aktivitätsindikator tatsächlich zu starten und zu stoppen, da sich Ihre gesamte Berechnung auf den Hauptthread bezieht. Eine Lösung besteht darin, startAnimating in einem separaten Thread aufzurufen:

%Vor%

Oder Sie könnten Ihre Berechnung in einen separaten Thread einfügen und warten, bis sie beendet ist, bevor Sie stopAnimation aufrufen.

    
jonnyv 04.12.2009 23:02
quelle
12

Normalerweise mache ich:

%Vor%     
Frank Schmitt 24.12.2009 00:05
quelle
1

Alle UI-Elemente müssen sich im Haupt-Thread befinden

%Vor%

dann:

%Vor%     
bpolat 24.08.2013 12:12
quelle
1

Bei Bedarf schnelle 3-Version:

%Vor%     
William T. 02.10.2016 06:34
quelle
0

Ok, tut mir leid, als wäre ich durch meinen Code gegangen.

Ich habe den Indikator folgendermaßen beendet:

%Vor%

Nach einem Durchlauf wurde der activityIndicator vollständig entfernt.

    
Daniel 25.12.2009 11:14
quelle
0

Diese Frage ist sehr nützlich. Aber eine Sache, die in der Antwort fehlt, ist, dass alles, was lange braucht, in einem separaten Thread ausgeführt werden muss, nicht die UIActivityIndicatorView. Auf diese Weise reagiert es nicht mehr auf die Benutzeroberfläche.

%Vor%     
Black Tiger 19.12.2012 10:38
quelle