Xcode 6无法显示iPhone 6模拟器的正确图像大小

时间:2014-10-21 20:22:09

标签: ios iphone xcode

我一直在关注本教程https://www.youtube.com/watch?v=_36Y6rDcKP0使用Image.xcassets在不同设备上显示全屏图像。因为可以清楚地显示placeHolders,所以创建启动项非常容易。但是,我的问题是在创建新的图像集时如下。

enter image description here

我在每个地方放置的图片如下:

  • 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)。我做错了什么?

4 个答案:

答案 0 :(得分:1)

经过大量的游戏后,我相信这是一个错误。运行iPhone 6时,Image.xcassets应加载568h@2x.png(640 x 1136)。 Xcode应该将其扩展到750 X 1334.但它不会,它总是加载iPhone 4(320 x 640)图像。为了解决这个问题,我创建了两组Image.xcassets(Device Specific),如下所示:

   - 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)

In(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 :(得分:1)

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

enter image description here

根据Apple,&#34;您使用启动XIB或故事板文件来指示您的应用在iPhone 6 Plus或iPhone 6上运行。&#34;我假设这是导致它开始拉动正确图像的原因,否则它不会将其视为正确的手机。

答案 2 :(得分:0)

@ 3x适用于iPhone6 +,bg-568 @ 2x适用于retina4 尝试使用bg-667 @ 2x

希望它有所帮助!

答案 3 :(得分:-1)

正在拉伸2x图像以适应增加的屏幕尺寸,如果您使用单独的3x图像作为图标和启动画面,则图像未拉伸广告正确显示

了解更多详情... iPhone 6 Plus resolution confusion: Xcode or Apple's website? for development