Xcode 6.1使用相同的2x图像为iPhone 6和4s模拟器

时间:2014-10-28 17:26:39

标签: ios objective-c iphone xcode image

我正在使用资产目录来存储图像。我的应用包含全屏教程页面。在iPhone的单个图像资产的images.xcassets下有4个版本。 1x,2x,Retina 4 2x和3x。

我正在使用Xcode 6.1。当应用程序在4s模拟器上运行时,它使用2x版本的映像。 iPhone 6模拟器正在使用相同的图像。无论我是否将部署目标设置为7.1,8.0或8.1,都会发生同样的事情。

我附上了解释问题的测试项目。如果你在模拟器中运行项目,iPhone 4s和iPhone 6都会显示2x版本的图像。

https://www.dropbox.com/s/8gon4czetkya485/AssetCatalogTest.zip?dl=0

如何使用资产目录轻松显示4和6的不同图像?

4 个答案:

答案 0 :(得分:1)

看起来没有办法解决这个问题。我尝试从启动图像复制规则,资产目录使用启动图像使用的667h和736h子类型删除图像。

你认为这会奏效,但它没有:

{
  "images" : [
    {
      "idiom" : "iphone",
      "scale" : "2x",
      "filename" : "4.png"
    },
    {
      "idiom" : "iphone",
      "filename" : "6.png",
      "subtype" : "667h",
      "scale" : "2x"
    }
  ]
}

你最好的方法是老式的方式。使用test-667之类的名称为每个尺寸创建图像,并执行以下操作:

[UIImage imageNamed:[NSString stringWithFormat:@"test-%g", [[UIScreen mainScreen] bounds].size.height]]

答案 1 :(得分:1)

可悲的是,我们应该对文档更加小心。

subtype参数仅适用于启动图像类型,而不适用于任何其他图像集类型

请参阅以下两个链接进行证明:

Image Set Type

Launch Image Type

答案 2 :(得分:0)

原因是由于iPhone 4s / 5 / 5S和6使用了2倍。 6 Plus将使用3x版本。

答案 3 :(得分:0)

我遇到了全屏图像的同样问题。但是我找不到合适的东西,所以我写了一个修复这个问题的类别。你可以找到它at github。它使用老式的方法在该应用程序包中创建多个图像,但它允许为不同的习语,方向和屏幕设置不同的图像。