【问题标题】:Change iPhone splash screen time [duplicate]更改 iPhone 启动画面时间 [重复]
【发布时间】:2011-11-22 14:31:48
【问题描述】:

如何让启动画面停留更长时间,例如 5 秒?

【问题讨论】:

  • 它不是闪屏!阅读人机界面指南。
  • 你会怎么称呼它?更进一步,你如何让它停留 5 秒,就像问的问题一样?
  • 在屏幕上显示“启动画面”的时间超过了需要的时间,这会让用户觉得您的应用程序很慢,这是您的用户真正不想要的。
  • 好吧,也许你不认为让它看起来很慢,无论如何。如果我愿意,我会怎么做?问题不是“你们认为这会让我的应用看起来很慢吗”,而是“如何让启动画面停留更长时间?”
  • 故意延迟应用程序启动时间会被苹果拒绝;除非您的应用正在执行一些真正的加载工作,在这种情况下,可能适合添加加载屏幕或类似内容,带有进度条或微调器视图。

标签: iphone ios xcode splash-screen


【解决方案1】:

sleep(5.0)在你的

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法。

【讨论】:

  • 这是最聪明但最直接的方法。
  • 这不会冻结您的应用程序代码 5 秒钟吗?如果我想在 5 秒内获取一些云数据怎么办?
  • 是的,它将处于睡眠模式。所以什么都不会发生。
  • 我的印象是,如果启动时间过长,操作系统 (iOS) 会杀死您的应用程序。你测试过这段代码吗?
  • 不要这样做。非常糟糕。
【解决方案2】:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

  /*this will pause main thread for x interval seconds. 
  put on the top of application:didFinishLaunchingWithOptions, so it will not 
  proceed to show window until sleep interval is finished.*/

    [NSThread sleepForTimeInterval:5]; //add 5 seconds longer.
   //other code....
}

【讨论】:

  • 不要这样做。非常糟糕。
【解决方案3】:

您需要创建一个视图控制器来显示启动屏幕,如下所示。

   - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        [self generateRandomSplashScreen];

        [self performSelector:@selector(removeSplashScreen) withObject:nil afterDelay:SPLASHSCREEN_DELAY];

    [self otherViewControllerLoad]; // the other view controller

        [self.window makeKeyAndVisible];
        return YES;
    }
    -(void) generateRandomSplashScreen
    {
        splashScreenViewController = [[SplashScreenController alloc] initWithNibName:@"SplashScreenController" bundle:[NSBundle mainBundle]];

        [self.window addSubview:self.splashScreenViewController.view];
    }

    -(void) removeSplashScreen
    {
        [splashScreenViewController.view removeFromSuperview];
        self.window.rootViewController = self.tabBarController;
        [splashScreenViewController release];
    }

【讨论】:

    【解决方案4】:

    您所说的启动画面可能是“default.png”文件。正如 JustSid 所提到的,此文件并非旨在作为启动屏幕,而是用作第一个屏幕快照,以改善有关应用程序加载时间的用户体验。检查人机界面指南

    http://developer.apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/IconsImages/IconsImages.html#//apple_ref/doc/uid/TP40006556-CH14-SW5

    如果你想实现splashscreen,你应该使用ie。 NSTimer 和 UIView 组件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-13
      • 2020-10-16
      • 1970-01-01
      • 2012-04-23
      相关资源
      最近更新 更多