UIImage不使用Swift显示

用Swift编写的用于显示UIImages的代码可以在iOS 8.0模拟器中运行,但不能在运行IOS 7.0的手机上运行。

let image1 = UIImage(named: "img1") let imageview = UIImageView(image: image1) self.view.addSubview(imageview) let image2 = UIImage(named: "img2") let button = UIButton(frame: CGRect(origin: CGPoint(x: 0, y: 100), size: image2.size) button.setImage(image2, forState: UIControlState.Normal) self.view.addSubview(button) 

图像位于正确的位置,具有正确的大小和有效的引用,除了在运行iOS 8的模拟器上之外,它们只是没有显示。

这对其他人来说是个问题吗?

编辑:从Images.xcassets删除,清理项目和将文件复制到包本身似乎对我有用。

我在iOS 8-Simulator和我的iOS 7设备上尝试了你的代码,它做了它应该做的事情。 所以不,在我的情况下,我没有看到问题。

我将img1更改为img1.JPG(文件名),将img2更改为img2.png。 我将图像直接复制到视图控制器所在的文件夹中。

要显示图像,您必须按以下方式更改代码

 let image1 = UIImage(named: "img1.jpg") let imageview = UIImageView(image: image1) self.view.addSubview(imageview) let image2 = UIImage(named: "img2.jpg") let button = UIButton(frame: CGRect(origin: CGPoint(x: 0, y: 100), size: image2.size) button.setImage(image2, forState: UIControlState.Normal) self.view.addSubview(button) 

记住swift不支持.png格式图像,它支持.jpg格式。

您将检查图像是否已添加到框架中,如果未选中该图像,则无法加载资源,但如果检查该图像,则将加载图像 在此处输入图像描述

我将我的图像存储在“Images.xcassets”文件夹中,我的图像没有出现在我的设备上,但它们确实出现在模拟器上。 为了在我的设备(iPhone 5)上显示“Images.xcassets”图像,我,对我有用的解决方案是复制“Images.xcassets”文件夹的包资源

复制捆绑包资源:选择目标>构建阶段>复制捆绑包资源>选择“+”(添加项目)>选择“Images.xcassets

问题的投票与其他答案之间似乎存在脱节,因此我将为如何在Swift中显示图像添加一个通用答案。 无论如何,这就是最初把我带到这里的原因。

如何在Swift中显示图像

使用UIImage获取对主包中图像的引用。

 let image = UIImage(named: "rocket.png") imageView.image = image 

笔记

  • imageView是一个UIImageView
  • 在我的测试中,包括或排除.png文件扩展名没有区别。 但是,如果您使用多种图像格式,可能需要包含。
  • 同样在我的测试中,图像是直接添加到项目还是在Assets.xcassets中没有区别。
  • 如果您需要的图像不在主捆绑中,请参阅此问题 。
  • 根据原始问题中的编辑,删除图像并将其重新添加到包中是解决问题的方法。