11

如何延迟应用程序加载以更长时间地显示初始屏幕?

4

6 回答 6

26

您应该让应用程序像往常一样启动,然后使出现的第一个视图具有与初始屏幕相同的图像。启动一个计时器,然后在几秒钟后将该视图替换为您的真实应用程序根视图。

故意延迟实际的应用程序启动是一个很大的禁忌。

于 2010-03-17T02:54:37.393 回答
11

更新:不认真,不要这样做!

或者我们的 C 函数

sleep(9);

将其放入 applicationDidFinishLaunching: 将导致您的程序暂停 9 秒,也可以输入任何其他整数。

编辑:在过去的一年里我学到了很多东西。不要这样做。原因是如果启动时间过长,跳板会自动停止应用程序的启动。该时间记录很少,因此即使一秒钟也可能导致应用程序失败。

于 2010-03-18T03:47:20.247 回答
1

这个问题类似:splash screen like tap tap revenge 3

基本上,在您的 applicationDidFinishLaunching: 中,在包含 Default.png 的其他视图之上添加一个图像视图。

于 2010-03-17T02:53:50.090 回答
1

请参阅上面关于为什么您可能不应该以这种方式延迟您的应用程序加载的讨论。但是,如果您碰巧遇到这样一种情况,即短时间睡眠比切换视图的开销更可取,请使用 NSThread 的sleepForTimeIntervale而不是 sleep()。它对框架更友好,您可以更精细地控制睡眠时间:

[NSThread sleepForTimeInterval:0.75]
于 2010-11-12T19:18:09.987 回答
0

我遇到过客户必须演示启动图像的情况。所以,这是我的解决方案..

- (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.
 */

}

于 2012-09-28T14:09:23.357 回答
0

您可以使用它的睡眠方法来获得此结果“

睡眠时间间隔

",如果你想获得它的启动时间,请执行以下操作:

- (void) applicationDidFinishLaunching:(UIApplication*)application
{
   [NSThread sleepForTimeInterval:8.0];
}

它将延迟发射8秒

警告:但苹果不推荐这样做,因为它会在你的应用程序加载过程中造成很长时间的监视,它可能会杀死你的应用程序。但是,如果您需要它来获取某些特定的屏幕截图或用于某些内部使用,您可以使用它来解决目的,但永远不要在应用程序提交中使用。

于 2017-03-01T18:54:21.347 回答