2010-10-15 4 views
2

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

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

Не мог бы кто-нибудь мне помочь?

ответ

1

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

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

  1. Покажите на вкладке, перед тем загрузки что-нибудь еще в представлении. И когда данные готовы, просто спрячьте и покажите полную информацию.
  2. Покажите свой неполный вид и добавьте оверлей с UIActivityIndicatorView.
1

Как мне это сделать:

Создание LoadingViewController класса с UILabel, в UIActivityIndicator и черном фоне.

В методе 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 со мной прямо сейчас, и не может проверить, если Я только что написал какие-то ошибки, но надеюсь, что вы получите эту идею :)

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

Смежные вопросы