我的应用下载了大量数据,大约需要几秒钟。我的启动画面显示然后消失,然后在加载第一个视图之前出现白色空白屏幕几秒钟。有没有办法让闪屏出现?是否可以在AppDelegate中创建一个视图并保持显示,直到所有数据加载完成并且视图即将加载?
答案 0 :(得分:4)
使用MBProgressHUD您可以在此处获取完整的源代码。
https://github.com/jdg/MBProgressHUD
希望这有帮助。
这是一个加载视图,它是活动指示器。
编辑:
您可以使用
在后台下载数据时将背景视图添加到窗口中[window addSubview:<backgroundView>.view];
然后,下载数据后,您可以从窗口中删除相同数据并将主视图控制器添加到窗口
[<backgroundView>.view removeFromSuperView];
[window addSubview:<mainView>.view];
希望这会对你有所帮助。
答案 1 :(得分:3)
是的,您可以显示带有启动画面的视图(可能还有活动指示器,只记得在单独的线程中加载数据,或者它不会旋转),然后在加载时切换到正确的视图完成。
答案 2 :(得分:1)
在实际视图之前看到的白色视图是mainWindow。 Sinply将启动图像设置为MainWindow.xib中窗口的背景图像,您就完成了。您也可以选择添加一个始终在窗口上旋转的微调器,这样当您的应用程序加载时,您首先会看到启动画面,然后是带有微调器的spalsh屏幕,然后会出现您的视图。
答案 3 :(得分:0)
我在viewDidLoad中加载了一个带有default-Image的ImageView,并在数据出现时隐藏它。
UIImage* imageDefault = [UIImage imageNamed:@"Default@2x.png"];
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;