Что бы ни делал implementLogin
(возможно, отправляя сетевой запрос), он делает это в основном потоке, который, вероятно, блокирует обновления пользовательского интерфейса, такие как анимация вращения.
Вы можете перекодировать что-то вроде этого:
[activitySpinner startAnimating];
dispatch_async(dispatch_get_global_queue(DISPATCH_PRIORITY_DEFAULT, 0), ^{
[self implementLogin];
dispatch_async(dispatch_get_main_queue(), ^{
// Stops spinner
[activitySpinner stopAnimating];
}
}
[Код не проверен, но вы понимаете.]
Здесь происходит то, что вы отправляете задачу входа в фоновый режим, и последнее, что блокирует, будетсделать, это остановить спиннер в главном потоке (как отдельная задача).