如何使用默认启动画面进行通用应用程序?

时间:2012-06-01 17:08:27

标签: iphone ios ipad splash-screen beginanimations

我有一个通用的应用程序。在这个应用程序中,我将介绍图像设置为启动画面。对于iPhone,我需要设置不同的图像作为启动画面和iPad不同的图像。当我使用下面的代码时,它适用于iphone但不适用于ipad。这是我的代码。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
   [self copyDatabaseIfNeeded];
   [window addSubview:navigationController.view];
   [window makeKeyAndVisible];

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
    splashViewBg = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 768, 1004)];
    splashViewBg.image = [UIImage imageNamed:@"jamil.png"];
    //splashViewBg.contentMode = UIViewContentModeScaleAspectFill;
    [window addSubview:splashViewBg];

    splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 768, 1004)];
    splashView.image = [UIImage imageNamed:@"jamil.png"];
    //splashView.contentMode = UIViewContentModeScaleAspectFill;
    splashView.alpha = 0.0f;
}
else
{
    splashViewBg = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
    splashViewBg.image = [UIImage imageNamed:@"defualt.png"];
    //splashViewBg.contentMode = UIViewContentModeScaleAspectFill;
    [window addSubview:splashViewBg];

    splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
    splashView.image = [UIImage imageNamed:@"defualt.png"];
    //splashView.contentMode = UIViewContentModeScaleAspectFill;
    splashView.alpha = 0.0f;
}

[UIView beginAnimations:@"show" context:NULL];
[UIView setAnimationDuration:1.0f];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
[UIView setAnimationDelegate:self];
splashView.alpha = 1.0f;
[UIView commitAnimations];

[self performSelector:@selector(removeSplash) withObject:nil afterDelay:2.0];

[self performSelector:@selector(removeSplashBg) withObject:nil afterDelay:3.5];

return YES;
 }

 - (void) removeSplash {
   [UIView beginAnimations:@"hide" context:NULL];
   [UIView setAnimationDuration:1.0f];
   [UIView setAnimationCurve:UIViewAnimationCurveLinear];
   [UIView setAnimationDelegate:self];
   splashView.alpha = 0.0f;
  [UIView commitAnimations];
}

  - (void) removeSplashBg {
      [splashView removeFromSuperview];
      [splashViewBg removeFromSuperview];
}

1 个答案:

答案 0 :(得分:2)

我知道这并没有直接回答你的问题,但Apple的指导方针明确指出不使用启动画面图像。强烈建议不要这样做,并且可能会为您的用户带来非常糟糕,不一致的体验。如果您在加载应用程序时必须显示屏幕,则无需编写任何代码即可。只需将图像命名为Default.png和Default@2x.png即可。它们将自动加载并显示为闪屏。请参阅documentation for "Launch Images"