Мое приложение загружает довольно много данных, что занимает несколько секунд. Мой экран заставки отображается, а затем исчезает, а затем появляется белый пустой экран в течение нескольких секунд до загрузки первого вида. Есть ли способ сохранить экран заставки? Можно ли создать представление в AppDelegate и оставить его отображаемым до тех пор, пока все загрузки данных не будут завершены и представление будет загружено?
Экран загрузки приложений и всплывающих окон
Ответ 1
Использование MBProgressHUD Здесь вы можете получить весь исходный код.
https://github.com/jdg/MBProgressHUD
Надеюсь, что это поможет.
Это вид загрузки, который является индикатором активности.
ИЗМЕНИТЬ:
Вы можете добавить свой фоновый вид в окно, когда ваши данные загружаются в фоновом режиме, используя
[window addSubview:<backgroundView>.view];
Затем, как только данные будут загружены, вы можете удалить их из окна и добавить свой главный контроллер представления в окно
[<backgroundView>.view removeFromSuperView];
[window addSubview:<mainView>.view];
Надеюсь, это поможет вам.
Ответ 2
YEs, вы можете отобразить представление с заставкой (и, возможно, индикатором активности, просто не забудьте загрузить ваши данные в отдельном потоке, или он не будет вращаться), а затем переключиться на соответствующий вид, когда загрузка сделал.
Ответ 3
Белый вид, который вы видите перед фактическим видом, является основным. Непосредственно установите заставку в качестве фонового изображения вашего окна в MainWindow.xib, и все готово. При желании вы также можете добавить прядильщик, который всегда вращается в верхней части окна, так что, когда ваше приложение загружается, вы сначала видите заставку, затем экран spalsh со счетчиком, а затем появляется ваше представление.
Ответ 4
Я загружаю 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;