首页 > 解决方案 > 从 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] 会给我数组中的字符串值。我的目标是,当我打开书本时……“打开”图片在第一页,“杯子”图片在第二页。

标签: arraysswiftstringxcodeuiimage

解决方案


只需使用字符串数组而不是图像

 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)
}

推荐阅读