iPhone 4“屏幕与Xcassets不拉动正确的图像

我正在尝试将Images.xcassets实现到我正在处理的项目中。 根据我的理解,我可以把所有不同大小的图像放在那里,然后调用[UIImage imageNamed:@“name_of_image_set”],它会返回正在工作的设备的正确图像。

它似乎是拉扯正确的形象,除了iPhone 4 / 5s / 5c与4“屏幕之外的所有东西。对于这个屏幕大小,它给了我与3.5”屏幕@ 2x iPhone的形象。

Images.xcassets中配置的图像

这是包含在图像文件夹中的json。

{ "images" : [ { "idiom" : "iphone", "scale" : "1x", "filename" : "bg.png" }, { "idiom" : "iphone", "scale" : "2x", "filename" : "bg@2x.png" }, { "idiom" : "iphone", "filename" : "bg-568h@2x.png", "subtype" : "retina4", "scale" : "2x" }, { "idiom" : "ipad", "scale" : "1x", "filename" : "bg~ipad.png" }, { "idiom" : "ipad", "scale" : "2x", "filename" : "bg@2x~ipad.png" } ], "info" : { "version" : 1, "author" : "xcode" } } 

一切似乎都是为了,我只是误解xcassets应该如何工作?

谢谢

乔尔贝尔

我遇到了这个问题,这个问题似乎是针对低于7.0的iOS版本。我的解决scheme是创build一个单独的图像集与一个单一的@ 2x图像,并实例化正确的一个编程检测代码中的iPhone屏幕大小就像在这里做的

相关: 为什么我的资产目录不能返回R4图像?

我有同样的问题,但只在ios7和我编程加载图像,但它应该是同样的问题。

在我的viewDidLoad中我添加了:

 if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)]) { // if iOS 7 self.edgesForExtendedLayout = UIRectEdgeNone; //layout adjustements } 

它基本上只是识别iOS7并应用一些布局调整。 我添加了这个代码后,正确的图片被选中。 最后,我加载我的图像,你不必做:

  [productview setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]]]; 

发现这个答案也在这里在计算器,但没有find它了。