Normalerweise mache ich:
%Vor%Bei Bedarf schnelle 3-Version:
%Vor%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.
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%Alle UI-Elemente müssen sich im Haupt-Thread befinden
%Vor%dann:
%Vor%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?]
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.
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.
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%Tags und Links iphone uiactivityindicatorview