【问题标题】:Swift 4 array images show with food loopSwift 4 数组图像显示食物循环
【发布时间】:2019-06-24 13:49:08
【问题描述】:

这是我在 swift 4 xcode 中的代码。我的代码有问题。我无法用模拟器上的图像显示我的数组我做错了什么? 我是 swift 的初学者。我也尝试过查看你如何用四个循环的图像编写数组,但模拟器讲解显示

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        let img : UIImage = UIImage(named: "owl")!
        let imageView = UIImageView(image: img )
        self.view.addSubview(imageView)

      //  var images = Array<UIImage>()
        //images.append(UIImage(named: "lion")!,

                      let ImgArray = ["lion.png","wolf.png","snake.png"]
        var images = [UIImage]()

        for i in 0..<ImgArray.count
        {
            images.append(UIImage(named: ImgArray[i])!)
        }
        let imageView2 = UIImageView(image: img )
        self.view.addSubview(imageView2)
    }

}

【问题讨论】:

  • 与您的问题无关,但是,您打破了 foreach 循环的想法。你可以简单地说对数组中的每个元素都这样做,而不仅仅是它的索引。所以你可以说for imgName in ImgArray { ... }然后你可以用这个名字来初始化一个图像UIImage(named: imgName)
  • 谢谢!我不太了解,但我试着按照你所说的去做,我认为使用未解析的标识符“ImgArray”我现在得到这个错误的消息,我添加了一个类。 let Array = ["lion.png","wolf.png"] var images = [UIImage]() for imgName in ImgArray { images.append(UIImage(named: images)) } } 类图像 { var images: UIImage init (图片:UIImage){ self.images = images } } }

标签: arrays swift image loops


【解决方案1】:

正如@Robert 所解释的,您可以这样使用for loop,而不是使用数组的索引:

let imagesNames = ["img1.png", "img2.png", "img3.png"]

for imageName in imagesNames {
    let image = UIImage(named: imageName)
    images.append(image)
}

您还可以使用map 直接将您的array 图片名称转换为array 图片:

let imagesNames = ["img1.png", "img2.png", "img3.png"]
let images = imagesNames.map { UIImage(named: $0) }

0$ 是你的imageName

【讨论】:

  • 请使用map
  • 他是初学者,for loop这个用法比较容易理解,不过我在回答中加了map的方法!
猜你喜欢
  • 2011-08-24
  • 2013-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多