使用XCode 6/Swift在iOS 7.1中显示的图像

pud*_*dge 21 xcode ios7 swift

我有这个ObjC代码:

[self.myButton setBackgroundImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@-button", self.myObject.name]]
                         forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

这适用于以下组合:

  • XCode 5,iOS 7.1
  • XCode 6,iOS 7.1
  • XCode 6,iOS 8

但是,当我将一个项目的一个类移植到Swift时 - 一个与此代码中发生的任何事情无关的类 - 图像不会显示在iOS 7.1的XCode 6中.它适用于XCode 6和iOS 8.

我完成了将整个项目移植到Swift,所以现在代码看起来像:

self.myButton.setBackgroundImage(
    UIImage(named:self.myObject.name + "-button"),
    forState: UIControlState.Normal
)
Run Code Online (Sandbox Code Playgroud)

它在iOS 7.1上仍然不高兴.仍然没有图像.(虽然自定义图标有效.)是的,我知道这只是测试版软件,它可能只是一个错误...?但我只是想知道是否有人有解决方案或见解.

我只用一个星期左右的XCode和ObjC前开始(惊喜!ObjC现在已经过时!),所以它可能是我失去了一些东西,但因为它工作在ObjC,和斯威夫特+ iOS8上,它看起来像它可能是一个错误.

小智 9

我设法通过不使用资产库来存储我的图像来克服这个问题.

使用"旧样式命名"(如Image.pngImage@2x.png)将图像添加到项目中,然后加载它们,文件名中没有任何扩展名,如下所示:

let myImage = UIImage(named:"Image")
Run Code Online (Sandbox Code Playgroud)


A-L*_*ive 2

我猜你正在模拟器上测试它。确保所需的图像已复制到 7.1 包中。为此,请检查copy resources bundle构建阶段或手动检查不同模拟器的应用程序包~/Library/Application Support/iPhone Simulator/