Xcode 6 在 iPhone 6 模拟器中未显示正确的图像尺寸

5
我一直在跟随这个教程https://www.youtube.com/watch?v=_36Y6rDcKP0,学习如何使用Image.xcassets在不同设备上显示全屏图片。创建启动项非常容易,因为占位符清晰可见。但是,当我创建一个新的图像集时,遇到了问题。
我在每个占位符中放置的图像如下:
  • 1x bg.png (320 x 640)
  • 2x bg@2x.png (640 x 960)
  • Retina 4 2x bg-568h@2x.png (640 x 1136)
  • 3x bg@3x.png (2208 x 1242)
我的问题是,当我运行iPhone 6模拟器时,它加载bg@2x.png(640 x 960)图像而不是IPhone 6的bg-568h@2x.png(640 x 1136)图像?(图像被拉伸)。所有其他设备的图像大小都是正确的。在视频教程中,IPhone 6模拟器确实加载了bg-568h@2x.png(640 x 1136)。我做错了什么?

我有同样的问题,如果你找到了解决方案,请告诉我。 - hardik hadwani
4个回答

1

经过多次测试后,我认为这是一个bug。当运行iPhone 6时,应该加载568h@2x.png(640 x 1136)的Image.xcassets。Xcode应该将其缩放到750 x 1334。但是,它并没有这样做,它总是加载iPhone 4(320 x 640)的图片。为了解决这个问题,我创建了两组Image.xcassets(设备特定),如下所示:

   - backGround.xcassets
   - 1x  (320 x 640)
   - 2x  (640 x 960)
   - 3x  (2208 x 1242)
   - //(uncheck 4- Retina)


   - backGroundRetina.xcassets
   - 2x  (640 x 1136)
   - //(only iPhone checked)

在 (void)viewDidLoad { 中
 if( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone ){

    CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;
    CGFloat screenWidth = [UIScreen mainScreen].bounds.size.width;
    if( screenHeight < screenWidth ){
        screenHeight = screenWidth;
    }

   if ( screenHeight > 480 && screenHeight < 736 ){
        NSLog(@"RUNNING IPHONE 5 or 6");
          [_backGround setImage:[UIImage imageNamed:@"backGroundRetina"]];


   } else  NSLog(@"THIS IS NOT IPHONE 6");

      //  [_backGround setImage:[UIImage imageNamed:@"backGround"]]; will be called


}

我相信还有其他解决此问题的方法,但这是对我有效的方法,希望能帮助其他遇到同样问题的人。

1

有人在另一个类似的问题中评论说要添加启动屏幕文件。尝试了基本上所有方法后,我添加了启动屏幕文件,一切都正常了。它与项目文件中设置应用图标和启动图片的位置相同。

enter image description here

根据苹果公司的说法,“您可以使用启动XIB或故事板文件来指示您的应用程序在iPhone 6 Plus或iPhone 6上运行。” 我认为这就是导致它开始拉取正确图像的原因,否则它不会将其视为正确的手机。

0

@3x 适用于 iPhone6+,而 bg-568@2x 适用于 Retina4 可以尝试使用 bg-667@2x

希望能有所帮助!


IPhone 6 Plus没有问题。我的问题在于iPhone 6。我认为它应该显示bg-568h@2x.png(640 x 1136)图像,而不是2x bg@2x.png(640 x 960)图像。 - pete
iPhone 6的分辨率为750 x 1334,应该命名为bg-667@2x。 - Vincent
谢谢你的帮助,但是没有任何改变。我的图片现在看起来像这样:1x bg.png(320 x 640)2x bg@2x.png(640 x 960)Retina 4 2x bg-667@2x(750 X 1334)3x bg@3x.png(2208 x 1242)。当我在iPhone 6模拟器上运行应用程序时,它仍然运行bg@2x.png(640 x 960)图像。你有其他想法吗? - pete

-1

没有问题,iPhone 6 Plus正常运行 - 我遇到问题的是iPhone 6。 - pete

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接