Мое приложение загружает довольно много данных, что занимает около нескольких секунд. Мой экран-заставка отображается, а затем исчезает, а затем на несколько секунд появляется белый пустой экран перед загрузкой первого представления. Есть ли способ сохранить отображение заставки? Можно ли создать представление в AppDelegate и держать его отображаемым до тех пор, пока загрузка всех данных не будет завершена и представление не будет загружено?
Загрузка приложения и экран-заставка
Ответы (4)
Используйте MBProgressHUD. Здесь вы можете получить весь исходный код.
https://github.com/jdg/MBProgressHUD
Надеюсь это поможет.
Это представление загрузки, которое является индикатором активности.
РЕДАКТИРОВАТЬ:
Вы можете добавить свой фоновый вид в окно, пока ваши данные загружаются в фоновом режиме, используя
[window addSubview:<backgroundView>.view];
Затем, как только данные будут загружены, вы можете удалить их из окна и добавить свой главный контроллер представления в окно.
[<backgroundView>.view removeFromSuperView];
[window addSubview:<mainView>.view];
Надеюсь, это тебе поможет.
removeFromSuperview
, а затем вы можете добавить свой viewController с вашими данными в окно в качестве его подпредставления. Так это выглядело бы красиво и новаторски. Надеюсь, это поможет вам :)
- person Parth Bhatt; 11.08.2011
Да, вы можете отобразить представление с экраном-заставкой (и, возможно, индикатором активности, просто не забудьте загрузить свои данные в отдельном потоке, иначе он не будет вращаться), а затем переключиться на правильный вид, когда загрузка будет завершена.
Белое представление, которое вы видите перед фактическим представлением, - это mainWindow. Просто установите заставку в качестве фонового изображения вашего окна в MainWindow.xib, и все готово. При желании вы также можете добавить счетчик, который всегда вращается в верхней части окна, чтобы при загрузке приложения вы сначала видели экран-заставку, затем экран-заставку со счетчиком, а затем отображалось ваше представление.
Я загружаю ImageView с изображением по умолчанию в viewDidLoad и скрываю его, если вам предшествуют данные.
UIImage* imageDefault = [UIImage imageNamed:@"[email protected]"];
CGRect frame;
frame.origin.x = 0;
frame.origin.y = -20;
frame.size.width = 320;
frame.size.height = 480;
splash = [[[UIImageView alloc] initWithFrame:frame] autorelease];
[splash setImage:imageDefault];
[self.view addSubview:splash];
.
.
splash.hidden=YES;