Предполагая, что все остальное правильно в вашем проекте, проблема в том, что вы показываете и скрываете индикатор активности в одном и том же цикле событий, не давая паузы для его отрисовки.Позвольте мне объяснить:
Если у вас есть код:
UIView* view = someView;
view.backgroundColor = [UIColor redColor];
// various synchronous operations
view.backgroundColor = [UIColor yellowColor];
Представление будет иметь только желтый цвет фона.
Чтобы ответить на ваш вопрос, вы, вероятно, хотите анимировать счетчик, выполнить асинхронную операцию, а затем остановить анимацию.Ключ заключается в том, чтобы не останавливаться в главном цикле событий во время выполнения асинхронной задачи.Если вам удобно с блоками, это будет выглядеть примерно так:
if (sender.tag == 1) {
// Start animating
activityIndicator.hidden = NO;
[activityIndicator startAnimating];
// Check if the network is available
[self checkReachableWithCallback:^{
// Stop animating
activityIndicator.hidden = YES;
[activityIndicator stopAnimating];
}];
}