Я использую UIActivityIndicatorView
как IBOutlet
. Я пытаюсь управлять им, используя [activityView startAnimating]
и [activityView stopAnimating]
.
Я включил режимы «Скрывает при остановке» и «Анимация» в файле XIB.
Я хочу запустить анимацию вращения для нескольких действий пользователя внутри контроллера. Но после первого вызова [activityView stopAnimating]
он не отвечает на вызов [activityView startAnimating]
снова.
Это означает, что спиннер исчез после первого [activityView stopAnimating]
вызова.
Я пытался activeView.hidden = NO;
перед следующим [activityView startAnimating]
звонком. Но это не работает.
Есть идеи по этому вопросу?
Отредактированный
После того, как мой контроллер загружен, я выполняю следующие действия,
do {
[self.activityIndicator startAnimating];
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
[webServiceCallOperation getResults];
[self.activityIndicator stopAnimating];
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
} while (![webServiceCallOperation isValideResponse] || [webServiceCallOperation isServerError]);
В том же контроллере у меня есть IBAction для нажатия кнопки.
- (IBAction)tappedSearchButton:(id)sender
{
[self.activityIndicator startAnimating];
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
[self tappedSearchButtonAction];
[self.activityIndicator stopAnimating];
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}
Я заметил, что спиннер не начинает анимироваться сразу после вызова [self.activityIndicator startAnimating];
. Используя [self tappedSearchButtonAction];
, я звоню в веб-сервис и перехожу к просмотру результатов поиска. Блесна начинает анимироваться непосредственно перед сменой вида. Вот почему я этого не видел. Но я предполагаю анимировать его перед вызовом веб-службы и должен анимировать его во время вызова моего веб-сервиса.
Такое же поведение индикатора сетевой активности.