2012-03-28 9 views
0

Die vorliegende Anwendung hat mehrere ViewControllers in UINavigation gestapelt.Elegante Erkennung von ActivityIndicator starten/stoppen Animieren

Jede Ansicht kann interne Aktionen aufrufen, die den einzelnen Aktivitätsindikator auslösen (ein Aktivitätsindikator pro Sicht).

Frage: Was ist eine elegante Möglichkeit, einen zentralen Code zu haben, der erkennen kann, wenn die verschiedenen Aktivitätsindikatoren starten/stoppen?

Ich nehme an, ein guter zentraler Punkt wäre der Delegierte, ich suche eine Lösung, die sauber, effizient und vor allem elegant ist.

Antwort

0

Erstellen Sie die Aktivitätsindikatoransicht in Ihrem Delegaten, und fügen Sie sie so hinzu, dass sie immer an der Vorderseite Ihrer Ansichten angezeigt wird und diese ausgeblendet wird.

Ihre Delegierten einen Zähler in der Schnittstelle zum Beispiel int activityCounter;

Erstellen Sie eine Methode auf dem Delegaten

-(void)startActivityIndicator { 
    activityCounter++; 
    activityView.hidden = NO; 
} 

Und ein anderer für

-(void)stopActivityIndicator { 
    activityCounter--; 
    if (activityCounter <= 0) 
     activityView.hidden = YES; 
} 

dann in Ihre Ansicht-Controller Finishing, wenn Sie Starten Sie eine Aktivität, die den Indikator anzeigen muss, können Sie startActivityIndicator auf Ihrem Delegieren aufrufen gegessen und wenn es fertig ist, rufen Sie stopActivityIndicator. Dies wird auch die Fälle behandeln, in denen Sie mehr als eine überlappende Aktivität haben und Sie möchten den Aktivitätsindikator sichtbar lassen, bis alle beendet sind.

0

Mai werden Sie eine allgemeine View-Controller für alle View-Controller erstellen und erben es in allen Ansichten, in denen Sie Aktivitätsindikatoren feuern ...

Dann können Sie Ihren Stapel der Aktivitätsindikatoren halten nach zu deinen Ansichten. Sie können ein NSMutableArray speichern, um die Aktivitätsindikatoren zu verfolgen, die Sie starten und stoppen.

Eine andere Möglichkeit ist die Verwendung von NSMutableDictionary, so dass Sie das Flag Ihrer Aktivitätsanzeige zusammen mit der übergeordneten Ansicht als Schlüssel speichern können.

Alles Gute !!!