使用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中删除,清理项目并将文件复制到包本身似乎对我有用。
答案 0 :(得分:8)
为了显示图像,您必须按以下方式更改代码
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格式。
答案 1 :(得分:2)
问题的投票与其他答案之间似乎存在脱节,因此我将为如何在Swift中显示图像添加一个通用答案。这就是最初把我带到这里的原因。
使用UIImage
获取主要包中图像的引用。
let image = UIImage(named: "rocket.png")
imageView.image = image
备注强>
imageView
是UIImageView
答案 2 :(得分:2)
答案 3 :(得分:1)
我在iOS 8-Simulator和我的iOS 7设备上尝试了你的代码,它完成了它应该做的事情。所以不,在我的情况下,我没有看到问题。
我将img1更改为img1.JPG(文件名),将img2更改为img2.png。我将图像直接复制到视图控制器所在的文件夹中。
答案 4 :(得分:1)
我将图像存储在“Images.xcassets”文件夹中,我的图像没有出现在我的设备上,但它们确实出现在模拟器上。为了在我的设备(iPhone 5)上显示“Images.xcassets”图像,我,对我有用的解决方案是复制“Images.xcassets”文件夹的包资源
复制捆绑资源:选择目标>构建阶段>复制捆绑资源>选择“+”(添加项目)>选择“Images.xcassets
答案 5 :(得分:0)
迅速5:
由于各种原因,不再接受编译的答案,所以这是我的更新版本:
let image1 = UIImage(named: "img1.jpg")
if let myImage1 = image1 {
let imageview = UIImageView(image: myImage1)
self.view.addSubview(imageview)
} else {
print ("img1 not loaded")
}
let image2 = UIImage(named: "img2.jpg")
if let myImage2 = image2 {
let button = UIButton(frame: CGRect(origin: CGPoint(x: 0, y: 100), size: myImage2.size))
button.setImage(myImage2, for: .normal)
self.view.addSubview(button)
} else {
print ("img2 not loaded")
}
答案 6 :(得分:0)
一个可能的原因是高度。检查 UIImageView 的高度,可能在代码或故事板中更高。