Zeigen Sie ein Ladesymbol, während eine Netzwerkressource wird heruntergeladen
-
03-07-2019 - |
Frage
Ich versuche, ein Ladesymbol angezeigt werden, während mein iPhone App eine Netzwerkressource heruntergeladen, aber ich kann nicht herausfinden, wie man es richtig zeigt bis zu machen.
Ich suchte herum und fand auf der UIActivityView
Klasse einige Details, aber das verfügbare Codebeispiel Quelle hat nicht funktioniert, und die Dokumentation ist eine Art kurz und bündig.
Könnte jemand ein einfaches Beispiel geben, wie diese Klasse benutzen?
Lösung
Angenommen, Sie ein View-Controller eingerichtet haben, und möchte einen UIActivityIndicator
, um es hinzuzufügen, ist hier, wie Sie es tun könnten:
(vorausgesetzt, dass Sie eine Membervariable namens indicator
haben, die Sie später aufzuräumen verwenden)
Für Ihre Schnittstelle (h-Datei):
UIActivityIndicator *indicator;
Für Ihre Implementierung (.m-Datei):
Starten Sie die Animation,
CGRect b = self.view.bounds;
indicator = [[UIActivityIndicator alloc] initWithActivityIndicatorStyle:
UIActivityIndicatorStyleWhite];
//center the indicator in the view
indicator.frame = CGRectMake((b.size.width - 20) / 2, (b.size.height - 20) / 2, 20, 20);
[self.view addSubview: indicator];
[indicator release];
[indicator startAnimating];
Stoppen Sie die Animation,
[indicator removeFromSuperview];
indicator = nil;
Andere Tipps
Ben Antwort sieht ziemlich ähnlich zu dem, was ich tue - Ihre Vermutung über den Thread wahrscheinlich genau ist. Verwenden Sie NSURLConnection
das Herunterladen zu behandeln? Wenn ja, verwenden Sie die synchrone oder asynchrone Version? Wenn es die synchrone Version ist und Sie einfach starten und die Animation um den synchronen Aufruf zu stoppen, wird die UI nicht aktualisiert, bis der Sie die Animation gestoppt haben.