我该如何延迟应用程序加载时间以使闪屏界面显示更长时间?
更新:真的,不要这样做!
或者使用C函数
sleep(9);
把这段代码放在applicationDidFinishLaunching:中会导致程序暂停9秒,也可以输入其他整数。
编辑:我在过去的一年里学到了很多。不要这样做。原因是如果启动时间太长,springboard将自动停止应用程序的启动。这个时间点的文档记录很差,即使延迟1秒,也可能导致应用程序崩溃。
[NSThread sleepForTimeInterval:0.75]
这个问题类似于:像Tap Tap Revenge 3一样的启动画面
基本上,在你的applicationDidFinishLaunching:方法中,添加一个图片视图在其他包含Default.png的视图之上。
我遇到了一个情况,客户需要演示启动图像。所以,这是我的解决方案...
- (void)applicationDidBecomeActive:(UIApplication *)application
{
UIImageView *defaultImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default@2x.png"]];
[self.window addSubview:defaultImageView];
sleep(2);
[defaultImageView removeFromSuperview];
[defaultImageView release];
/*
Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
*/
}
sleepForTimeInterval
",如果你想要获取启动时间,可以这样做:
- (void) applicationDidFinishLaunching:(UIApplication*)application
{
[NSThread sleepForTimeInterval:8.0];
}
它将延迟启动8秒钟
警告:但是苹果不建议这样做,因为它会让watchdog长时间等待您的应用程序加载,这可能会导致您的应用程序被终止。 但是,如果您需要获取某些特定的屏幕截图或进行一些内部使用,您可以使用此方法解决问题,但永远不要在应用程序提交中使用。
Default.png
是为了让用户立即得到应用程序正在启动的反馈。它不是用来显示闪屏的,延迟它以便用户能够看到闪屏更长时间恰恰与其初衷相反。如果您的简单应用程序加载非常快,那是一件好事,而不是需要修复的错误,并且您应该将Default.png
设置为初始用户界面的静态图像。 - Jim