我正在尝试将图像发送到另一个 View ,但问题是它没有在 UIImage 中显示图像。
我正在做的是将一个字符串发送到另一个 View ,如果该字符串与“一个”或“两个”等相同,它应该从 Assets 中获取图像。
if imagen=="one" {
miImagen == UIImage(named: "one")
}
我检查我发送的内容并打印它(并且它有效)。唯一没有显示它。
import UIKit
class SecondController: UIViewController {
@IBOutlet weak var miImagen: UIImageView!
var imagen = String()
override func viewDidLoad() {
super.viewDidLoad()
if imagen=="uno" {
self.miImagen.image == #imageLiteral(resourceName: "uno")
}
if imagen=="dos" {
self.miImagen.image == #imageLiteral(resourceName: "dos")
}
if imagen=="three" {
self.miImagen.image == #imageLiteral(resourceName: "three")
}
if imagen=="four" {
self.miImagen.image == #imageLiteral(resourceName: "four")
}
if imagen=="five" {
self.miImagen.image == #imageLiteral(resourceName: "five")
}
if imagen=="six" {
self.miImagen.image == #imageLiteral(resourceName: "six")
}
if imagen=="seven" {
self.miImagen.image == #imageLiteral(resourceName: "seven")
}
if imagen=="eight" {
self.miImagen.image == #imageLiteral(resourceName: "eight")
}
}
}
我在我的“ifs”之一中添加了 print("Your image name is"+imagen")
并且它有效但它不执行其他代码。
最佳答案
您的主要问题是尝试使用 ==
而不是 =
将图像分配给 ImageView 。
之后,您可以进行多项改进。由于 imagen
只能等于一个值,因此您确实应该使用 if else
。
if imagen == "uno" {
miImagen.image = UIImage(named: "uno")
} else if imagen == "dos" {
miImagen.image = UIImage(named: "dos")
} else if ... { // etc.
}
更好的是,使用开关
:
switch imagen {
case "uno":
miImagen.image = UIImage(named: "uno")
case "dos":
miImagen.image = UIImage(named: "dos")
// and the rest
default:
break
}
但最好的解决方案是考虑到您想要的图像与 imagen
的值相同。将整组 if
替换为:
miImagen.image = UIImage(named: imagen)
这就是您所需要的。只需一行即可处理所有图像。
关于ios - 不显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47733213/