arrays - 从 UIImage 数组中获取值并转换为字符串
问题描述
无法将“UIImage”类型的值转换为预期的参数类型“字符串”
我正在尝试创建一本书,如果我在 UIImageView 构造函数中输入我想要的图片名称“cup”,我的程序将正确执行并在每一页上显示相同的图片。如果我尝试执行“imageNames [element]”以根据我的 for 循环中的页面显示我的所有图片,它表示它无法将 UIImage 转换为 String
var imageNames: [UIImage] = [
UIImage(named: "open")!,
UIImage(named: "cup")!
]
for element in 0 ..< imageNames.count {
let vc = UIViewController()
vc.view.backgroundColor = randomColor()
//Where error is occurring!
let imageView = UIImageView(image: UIImage(named:
imageNames[element]))
vc.view.addSubview(imageView)
}
我认为 imageNames[element] 会给我数组中的字符串值。我的目标是,当我打开书本时……“打开”图片在第一页,“杯子”图片在第二页。
解决方案
只需使用字符串数组而不是图像
let imageNames = ["open", "cup"]
for imageName in imageNames { // no reason for an index based loop
let vc = UIViewController()
vc.view.backgroundColor = randomColor()
let imageView = UIImageView(image: UIImage(named: imageName))
vc.view.addSubview(imageView)
}
或者,如果您真的想要一组图像
let images = [
UIImage(named: "open")!,
UIImage(named: "cup")!
]
for image in images { // no reason for an index based loop
let vc = UIViewController()
vc.view.backgroundColor = randomColor()
let imageView = UIImageView(image: image)
vc.view.addSubview(imageView)
}