Отображение приветствия с индикатором активности при загрузке данных [iphone sdk]

У меня есть приложение для iPhone на основе навигации. Перед корневым представлением (UITableView) я хочу отобразить представление ДОБРО ПОЖАЛОВАТЬ с несколькими UILabels и UIActivityIndicator на нем.

Это окно ДОБРО ПОЖАЛОВАТЬ будет отображаться при запуске приложения с индикатором активности. Загрузка данных (обычно анализ XML и сохранение данных с сервера в локальной файловой системе) будет выполняться в фоновом режиме при запуске приложения.

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

я использую

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

Но не работает !!!
Любая помощь будет принята с благодарностью.

Спасибо


person riko_marse    schedule 09.12.2010    source источник


Ответы (4)


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

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


-(void)stop
{
   [self.indicator stopAnimating];
}
person Sakshi    schedule 08.08.2012

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

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

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

person Rog    schedule 09.12.2010

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

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

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

person John Parker    schedule 09.12.2010

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

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

person sudo rm -rf    schedule 09.12.2010