不能在iphone5上显示640×1136图像

我已经添加了一个Default-568h@2x.png启动图像到我的应用程序。 应用程序需要在“真实”启动图像之后显示第二个启动图像。 由于UIImage的imageNamed:方法不会自动加载更高的图像的方式,它会自动加载视网膜图像,我已经添加了一些代码来检测屏幕大小,并显示正确的图像:

-(void)pickRightImage { CGSize result = [[UIScreen mainScreen] bounds].size; UIImageView *imgv = [self loadingImage]; UIImage *img; if(result.height == 480) { img = [UIImage imageNamed:@"loading_screen.png"]; } else if([UIScreen mainScreen].scale == 2.f && result.height == 568) { // iPhone 5 img = [UIImage imageNamed:@"loading_screen-568h@2x.png"]; } [imgv setImage:img]; } 

imageView占用了NIB中的整个屏幕,名为MainWindow,而且我select了“Full Screen At Launch”checkbox。但是,图像永远不会占用整个屏幕。 (虽然发射图像确实如此)。第二个图像是信箱,就像它是一个较小的图像,我从来没有包括高的发射图像。

有无论如何编程方式显示在4英寸iphone5的全屏图像? 为什么我的形象总是resize?

我在主视图控制器上testing了这个。 此外,在目标>摘要>状态栏>可见性检查“在应用程序启动过程中隐藏”。

 - (void)viewDidLoad { [super viewDidLoad]; UIImageView *iv = [[UIImageView alloc] initWithFrame:self.view.bounds]; iv.image = [UIImage imageNamed:@"Second-default568h@2x.png"]; [self.view addSubview:iv]; } 

[UIImage imageNamed:]将照顾为你添加@2x 。 所以你应该指定

 img = [UIImage imageNamed:@"loading_screen-568h.png"]; 

对于4英寸屏幕和Retina标准(scale = 2)也是没有用的。所有具有4英寸屏幕(568px高)的设备都是Retina显示器,所以你可以假设如果height = 568,一个iPhone 5:取代

 if ([UIScreen mainScreen].scale == 2.f && result.height == 568) 

 if ([UIScreen mainScreen].bounds.size.height == 568) 

你很好。