У меня есть UITableViewController, который является RootViewController. Это XIB имеет только табличное представление. Я добавил UIActivityIndicator через IB и создал IBOutlet. Я программно добавил панель инструментов с кнопкой удаления в RootViewController. Когда пользователь нажимает кнопку удаления на панели инструментов, я хочу отобразить индикатор по центру экрана. Метод ниже удаляет данные из базы данных, что происходит очень быстро. Я хочу, чтобы пользователь знал, что что-то происходит. Если я запускаю приведенный ниже код без sleep (), это происходит быстро, и я не вижу индикатор. Но некоторые почему-то не видят индикатор в любом случае. Я предполагаю, что sleep () блокирует перекрашивание? Если я уберу sleep () и последние две строки, я увижу индикатор, но, конечно, он никогда не исчезнет. Он также отображается в верхнем левом углу окна.
Как заставить работать приведенный ниже код, чтобы индикатор отображался как минимум на 1/2 - 1 секунду?
Как выровнять индикатор по центру окна?
[self.navigationController.view addSubview:activityIndicator];
[activityIndicator startAnimating];
[activityIndicator setNeedsDisplay];
//do something which might happen really fast
sleep(1); //create illusion
[activityIndicator stopAnimating];
[activityIndicator removeFromSuperview];