指定iPhone 6在Xcode中使用@ 1x图像

时间:2015-10-23 13:45:36

标签: ios xcode background-image iphone-6 xcasset

我在名为Wallpaper的Assets.xcassets中创建了一个图像集。

由于我正在使用的应用程序仅适用于iOS 7或更高版本,因此嵌入非视网膜图像将毫无用处(iPhone 4具有视网膜,是支持iOS 7的最古老的设备)。这导致我的图像集中出现空白点。

现在,当我尝试为我的UIView设置背景时,我想我可能会使用该空白点作为iPhone 6全屏图像的参考(现在正在使用@ 2x图像)。

所以我正在寻找一种方法让iPhone 6使用@ 1x图像,否则不会使用@ 1x图像。

壁纸图片集Contents.json

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

我已经尝试了以下选项来达到Wallpaper-iPhone@1x.png,但它们似乎都没有效果。

UIImage *Wallpaper = [UIImage imageNamed:@"Wallpaper"];
if([UIScreen mainScreen].bounds.size.height == 667) {

    // 1. Use the image name, this results in (null).
    NSLog(@"%@",[UIImage imageNamed:@"Wallpaper-iPhone@1x.png"]);

    // 2. Add the mainBundle to the path, this also results in (null).
    NSLog(@"%@",[UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/Wallpaper-iPhone@1x.png", [[NSBundle mainBundle] resourcePath]]]);
}
[self.view setBackgroundColor:[UIColor colorWithPatternImage:Wallpaper]];

Wallpaper imageset

请注意:

  • 我已经尝试在"subtype" : "667h"中设置Contents.json,但这似乎不起作用......
  • 我意识到我可以使用两个图像集来定义iPhone 6壁纸图像,但我想知道这是否会起作用。
  • 该应用需要全屏,因此无法使用splitview。因此,使用@ 1x插槽不会在任何设备上造成任何问题。

0 个答案:

没有答案