Обычно я использую NSTimer, который вызывает мой метод счетчика, который я запускаю прямо перед тем, как приступить к тяжелой работе (работе, которая обычно блокирует основной поток).
Запускается NSTimer и вызывается мой метод счетчика. Когда основная работа закончена, я отключаю счетчик.
Код для этого:
IBOutlet UIActiviyIndicatorView *loginIndicator;
{
...
[loginIndicator startAnimating];
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(executeAuthenticationRequest)
userInfo:nil repeats:NO];
...
}
- (void) executeAuthenticationRequest
{
/* Simulate doing a network call. */
sleep(3);
[loginIndicator stopAnimating];
...
}
Вы также можете сделать:
IBOutlet NSProgressIndicator *pIndicator;
Начало:
[pIndicator startAnimation:self];
[pIndicator setHidden:NO];
И остановка:
[pIndicator stopAnimation:self];
[pIndicator setHidden:YES];