iPhone UiActivityIdicatorView во время загрузки UiviewController
-
30-09-2019 - |
Вопрос
У меня приложение с UitabbarController с пятью вкладками. Тесты на реальном устройстве показывают, что переключение с вкладки на другую, может занять одну или несколько секунд, чтобы загрузить представления, потому что я также должен загрузить некоторые данные из Интернета.
То, что я хотел бы сделать, это показать UiActivityIdicatorView, а представление загружается, но я не мог найти решение. Может быть, я не искал правильно.
Может кто-нибудь помочь мне?
Решение
Вы должны загрузить любые данные с асинхронным запросом, ASIHTTPREQUEST. Это хорошая обертка для этого.
Тогда для UiActivityIdicatorView это популярные варианты:
- Покажите это на вкладке, прежде чем на самом деле загружать все остальное в поле зрения. И когда данные готов, просто скрыть его и показать полную информацию.
- Покажите свой неполный вид и добавьте наложение с UiActivityIndicatorView.
Другие советы
То, как я делаю это:
Создайте класс OrdoorViewController с UILabel, UiActiveInticator и черным фоном.
В методе ViewDidload я установил:
[self.view setAlpha:0.0];
[self.activityIndicator startAnimating];
Я осуществляю два метода:
-(void)appear{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[self.view setAlpha:0.65];
[UIView commitAnimations];
}
-(void)disappear{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[self.view setAlpha:0.0];
[UIView commitAnimations];
}
На метке вы можете установить пользовательский текст.
Импортируйте этот класс в классе, на котором вы работаете и просто позвоните:
[loadingViewController appear];
а также
[loadingViewController disappear];
У меня нет Mac со мной прямо сейчас и не могу проверить, только написал ли я какие-либо ошибки, но я надеюсь, что вы получите идею :)
Я всегда предпочитаю сделать пользовательский класс для этого на случай, если мне понадобится во многих местах в моем приложении.