Вопрос

У меня приложение с UitabbarController с пятью вкладками. Тесты на реальном устройстве показывают, что переключение с вкладки на другую, может занять одну или несколько секунд, чтобы загрузить представления, потому что я также должен загрузить некоторые данные из Интернета.

То, что я хотел бы сделать, это показать UiActivityIdicatorView, а представление загружается, но я не мог найти решение. Может быть, я не искал правильно.

Может кто-нибудь помочь мне?

Это было полезно?

Решение

Вы должны загрузить любые данные с асинхронным запросом, ASIHTTPREQUEST. Это хорошая обертка для этого.

Тогда для UiActivityIdicatorView это популярные варианты:

  1. Покажите это на вкладке, прежде чем на самом деле загружать все остальное в поле зрения. И когда данные готов, просто скрыть его и показать полную информацию.
  2. Покажите свой неполный вид и добавьте наложение с 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 со мной прямо сейчас и не могу проверить, только написал ли я какие-либо ошибки, но я надеюсь, что вы получите идею :)

Я всегда предпочитаю сделать пользовательский класс для этого на случай, если мне понадобится во многих местах в моем приложении.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top