iOS 5.1和Default.png

mob*_*ius 8 ipad ios ios5

我正在使用iOS 5.1开发一个应用程序,我遇到了default.png文件的一些奇怪行为.

我已将以下文件添加到我的应用程序中:

Default.png - (iPhone)

Default@2x.ping - (iPhone Retina)

Default-Portrait~ipad.png - (iPad)

Default-Portrait@2x~ipad.png - (iPad Retina)

当应用程序启动时,似乎它选择了正确的Default.png图像用于每个场合.但是在我的AppDelegate中,我有一个简单的启动画面,可以更轻松地加载应用程序并转换到应用程序,执行以下操作:

UIImageView *splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,window.frame.size.width, window.frame.size.height)]; 
splashView.image = [UIImage imageNamed:@"Default"]; 

[window addSubview:splashView]; 
[window bringSubviewToFront:splashView]; 
Run Code Online (Sandbox Code Playgroud)

但是[UIImage imageNamed:@"Default"],反过来却没有为每个设备选择正确的文件,我相信问题是-Portrait文件名的一部分.

所以作为一个快速解决方案,我这样做:

if( ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) ) {
    // Force the image used by ipads
    if( [[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0) {
       splashView.image = [UIImage imageNamed:@"Default-Portrait@2x~ipad"];
    }
    else {
        splashView.image = [UIImage imageNamed:@"Default-Portrait~ipad"];
    }
}
else
   splashView.image = [UIImage imageNamed:@"Default"];
Run Code Online (Sandbox Code Playgroud)

这是我应该怎么做的?这看起来很有趣吗?

Rok*_*arc 4

有关官方信息,请查看:应用程序相关资源

对于启动图像,请使用以下格式:

<basename><orientation_modifier><scale_modifier><device_modifier>.png
Run Code Online (Sandbox Code Playgroud)

看起来你最好使用:

Default.png - (iPad)

Default@2x.png - (iPad Retina)

Default~iphone.png - (iPhone)

Default@2x~iphone.png -(iPhone Retina)
Run Code Online (Sandbox Code Playgroud)

即使简单地使用,这也应该给你正确的图像:

splashView.image = [UIImage imageNamed:@"Default"]; 
Run Code Online (Sandbox Code Playgroud)