Элегантное обнаружение анимации запуска / остановки ActivityIndicator - PullRequest
0 голосов
/ 28 марта 2012

В приложении имеется несколько viewControllers, расположенных в UINavigation.

Каждое представление может вызывать внутренние действия, которые будут запускать отдельный индикатор активности (один индикатор активности на представление).

Вопрос: Каков элегантный способ иметь центральный код, который может определять, когда различные Индикаторы активности запускаются / останавливаются?

Я предполагаю, что хорошим центральным пунктом будет делегат, я ищу решениекоторый чист, эффективен и прежде всего изящен.

Ответы [ 2 ]

0 голосов
/ 28 марта 2012

Создайте представление индикатора активности в своем делегате и добавьте его так, чтобы оно всегда было в передней части ваших представлений, и скройте его.

Создать счетчик в интерфейсе вашего делегата int activityCounter;

Создайте метод в вашем делегате, например

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

и еще один для отделки

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

Затем в контроллерах представления, когда вы запускаете действие, для которого нужно отобразить индикатор, вы можете вызвать startActivityIndicator для вашего делегата, а когда оно закончится, позвонить stopActivityIndicator. Это также будет обрабатывать случаи, когда у вас может быть несколько перекрывающихся действий, и вы хотите, чтобы индикатор активности оставался видимым до тех пор, пока все они не будут завершены.

0 голосов
/ 28 марта 2012

Может быть, вы можете создать обобщенный контроллер представления для всех контроллеров представления и наследовать его во всех представлениях, в которых вы запускаете индикаторы активности ...

Затем вы можете поддерживать свой стек индикаторов активностив соответствии с вашими взглядами.Вы можете сохранить NSMutableArray, чтобы отслеживать индикаторы активности, которые вы запускаете и останавливаете.

Другой способ - вы также можете использовать NSMutableDictionary, чтобы вы могли сохранить флаг индикатора активности вместе с его родительским представлением в качестве его.ключ.

Всего наилучшего !!!

...