Как использовать заставку по умолчанию для универсального приложения?

У меня есть универсальное приложение. В этом приложении я установил вводное изображение в качестве заставки. Для 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 ответ

Решение

Я знаю, что это не дает прямого ответа на ваш вопрос, но в рекомендациях Apple специально сказано, что НЕ использовать изображения с заставкой. Это настоятельно не рекомендуется, и может создать очень плохой, противоречивый опыт для ваших пользователей. Если вам нужно показать экран во время загрузки приложения, вы можете сделать это без написания ни одной строки кода. Просто назовите изображения Default.png и Default@2x.png. Они будут автоматически загружены и отображены как заставки. См. Документацию по "Запуск изображений".

Другие вопросы по тегам