Frage

Ich arbeite an einer eine Anwendung, die sehr einfach ist, ein Navigations-Controller mit einer Tabellensicht wenn der Benutzer eine Zeile klickt, er gerichtet ist, um die Details zu sehen.

Allerdings sehen die Details zieht Daten von Core Data. Ich bin eine relativ große Menge an Daten ziehen, die etwa drei Sekunden, bis dieser lädt.

Ich wollte noch hinzufügen, dass UIActivityIndicatorView Fortschritt zu zeigen.

Ich habe versucht, die Animation zu starten, sobald der Benutzer die Zeile klickt, so dass ich es auf belebte in DidSelectRowAtIndexPath

Aus irgendeinem Grunde hat die Aktivitätsanzeige beginnt nicht vor dem Drücken der Details Ansicht.

Jede Idee, warum? oder der beste Weg, eine solche Idee umzusetzen?

~ Adham

War es hilfreich?

Lösung

Weil Sie die Animation starten und dann eine große Operation im selben Thread starten. Man bedenke, dass 3 Sekunden Betrieb in einem neuen Thread ausgeführt wird. Schauen Sie sich NSOperationQueue und erstellen Sie ein NSOperation dieses Verfahren auszuführen. Es wird auf diese Weise arbeiten.

Andere Tipps

Die Benutzeroberfläche nicht aktualisiert, bis zum Ende Ihrer Laufschleife. Sie sind, in der Reihenfolge, die Aktivität Monitor angezeigt wird, dann die neue Tabelle Ansicht drücken und und das UI-Updates. Sie müssen diese Reihenfolge ändern.

Sie können entweder etwas zu einem anderen Thread verschieben, oder man könnte vielleicht das Laden der neuen Tabellenansicht verzögern, indem performSelector:afterDelay: mit einer Verzögerung von 0 Aufruf, dass das Laden der neuen Tabellenansicht erst nach der Aktivitätsanzeige erscheint verzögert in der Benutzeroberfläche. Nun, es ist immer noch alles auf dem gleichen Thread, so dass Sie von etwas zu tun, blockiert werden, aber wenn die Animation in dem Aktivitätsmonitor mit Gewinde versehen ist, wäre es für eine schnelle und einfache Lösung zu machen.

Call-Methode in thread:

[NSThread detachNewThreadSelector: @selector(loadMethod) toTarget:self withObject:nil];

Sehen Sie für weitere Informationen zu folgenden:
http://iphone.zcentric.com/?s=UIActivityIndicatorView

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top