-->

不能显示上的iphone5 640x1136图像(can't display 640x113

2019-10-17 06:52发布

我添加了一个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的占用在笔尖,被命名主窗口的整个屏幕,然后我选择了一个名为“全屏幕在启动”的复选框然而,图像从未占据了整个屏幕。 (虽然启动图像一样。)第二图像是信盒装,就好像它是一个更小的图像,而且我从来没有包括高大的启动图像。

反正是有以编程方式显示在4英寸的iPhone5全屏图像? 为什么我总是像调整?

Answer 1:

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

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


Answer 2:

[UIImage imageNamed:]将添加的护理@2x你。 所以,你应该只指定

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

这也是没用来测试一个4" 画面和视网膜标准(规模= 2)。有一个4" 所有设备屏幕(568px高)是Retina显示屏,所以你可以假设,如果高度== 568,用户一个iPhone 5:更换

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

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

你是好。



文章来源: can't display 640x1136 image on iphone5