Отображение приветствия Просмотр с индикатором активности во время загрузки данных [iphone SDK] - PullRequest
1 голос
/ 09 декабря 2010

У меня есть приложение для Iphone, основанное на навигации.Перед корневым представлением (UITableView) я хочу отобразить WELCOME представление с несколькими UILabels и UIActivityIndicator на нем.

Этот приветственный вид будет отображаться при запуске приложения с индикатором активности.Загрузка данных (обычно анализ XML и сохранение данных с сервера в локальную файловую систему) будет выполняться в фоновом режиме после запуска приложения.

Когда загрузка завершится, это представление автоматически отклонит и отобразит основное корневое представление (UITabkleView) с данными.

Я использую

-(void)viewDidLoad{
 [self.indicator startAnimating]
 [self performSelectorInBackground:selector(startDataDownload).....]        
 [self.indicator stopAnimating]
}

Но не работает !!!
Любая помощь будет высоко ценится.

Спасибо

Ответы [ 4 ]

2 голосов
/ 08 августа 2012

Вы вызываете startAnimatiing и stopAnimating в очереди. Вызовите StopAnimating так:

[self performselector:@selector(stop) withObject:nil afterDelay:3.0];


-(void)stop
{
   [self.indicator stopAnimating];
}
1 голос
/ 09 декабря 2010

Что не работает?

Очевидно, что анимация будет остановлена ​​немедленно, так как вы вызываете метод stopAnimating сразу, а не после завершения фонового потока. (т.е. текущий поток не остановится только потому, что вы загружаете что-то в фоновом режиме через другой поток.) ​​

Кроме того, вы уверены, что правильно настраиваете среду потоков в своем методе startDataDownload?

1 голос
/ 09 декабря 2010

Возможно, вы захотите попробовать среду под названием MBProgressHud .Он включает пример кода о том, как реализовать эти типы индикаторов прогресса.

Но если бы вы остались с кодом, я бы предложил переместить [self.indicator stopAnimating] в новый метод, который вызывается после завершения startDataDownload.В качестве теста попробуйте закомментировать эту строку и посмотреть, начнет ли она вообще анимироваться?

1 голос
/ 09 декабря 2010

Некоторые предложения:

Вы проверили, что self.indicator имеет значение? У вас может быть ошибка в вашем NIB или создании.

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

...