快速将6个随机数转换为tableViewCell中的6个图像

时间:2015-07-24 06:28:21

标签: swift

我对Swift很新,我无法找到Swift问题的答案。

创建一个乐透号码生成器,我可以使用标签来完成,但是我很难将这些数字映射到图像(例如乐透球图像),因此无论何时填充数字,它都会将这些数字转换为图像和节目在自定义单元格中。

目前使用tableView与客户Cell - 我在一个单元格中有六个UIImageView

通过我的练习,我发现自己重复相同的代码。例如ball1.image = arc4Random_uniform(45)和ball2 ball3等等......想要学习更难的方法。我的意思是不重复这些代码。请高手如何从1-45填充6个数字,没有重复,并在单元格中显示6个乐透球图像?

1 个答案:

答案 0 :(得分:0)

要减少代码使用,请在视图控制器上创建方法,并使用图像视图数组调用它。 这是方法:

func setImages(imageViews: [UIImageView]) {
      var numSet = Set<Int>()
      while numSet.count < imageViews.count
      {
          numSet.insert(Int(arc4random_uniform(45)) + 1) // Assuming you want numbers from 1 to 45 inclusive of both.
      }
      for (i, elem) in numSet.sort(<).enumerate() // Don't use sort if not needed.
      {
            imageViews[i].image = UIImage(named: "lotto\(elem).png") // Or whatever naming convention you used for the images.
      }
}

只需使用imageViews数组调用setImages即可。它使用数组的计数来生成足够的数字。不要忘记更改用于图像的命名方案。我假设你使用了lotto1.png命名方案,lotto2.png ... lotto44.png