无法在iphone5上显示640x1136图像

时间:2012-09-28 16:20:30

标签: ios retina-display iphone-5

我在我的应用中添加了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,我选择了名为“启动时全屏”的复选框但是,图像从不占用整个屏幕。 (虽然发射图像确实如此。)第二个图像是字母框,就像它是一个较小的图像,我从来没有包括高大的发射图像。

有没有以编程方式在4英寸iphone5上显示全屏图像?为什么我的图像总是调整大小?

2 个答案:

答案 0 :(得分:4)

[UIImage imageNamed:]会为您添加@2x。所以你应该指定

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

测试4英寸屏幕和Retina标准(比例= 2)也没用。所有具有4英寸屏幕(568像素高)的设备都是Retina显示屏,因此您可以假设如果高度== 568,用户有iPhone 5:替换

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

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

你很好。

答案 1 :(得分:1)

我在主视图控制器上测试了这个。另外,在Target>摘要>状态栏>可见性检查“在应用程序启动期间隐藏”。

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