如何返回正确的UIImageView

如何返回正确的UIImageView

问题描述:

寻找办法用一个函数来检查“数字”,并返回正确的UIImageView,而不必做一个长期if语句。这里是代码我目前正在使用:如何返回正确的UIImageView

randNumber = Int(arc4random_uniform(UInt32(array.count)))  

      if number == 1{ 
      image1.image = UIImage(named: array[randNumber]) 
      number += 1 
     } else if number == 2{ 
      image2.image = UIImage(named: array[randNumber]) 
      number += 1 
     } else if number == 3{ 
      image3.image = UIImage(named: array[randNumber]) 
      number += 1 
     } else if number == 4{ 
      image4.image = UIImage(named: array[randNumber]) 
      number += 1 
     } 

如果数量为3,则图像3将返回

任何人有什么建议?

+0

所以,你想缩短代码? – Sweeper

这里是缩短你的代码的方式。

制造阵列出来的图像观点:

let imageViewArray = [image1, image2, image3, image4] 

生成的随机数:

randNumber = Int(arc4random_uniform(UInt32(array.count))) 

这里谈到的魔力。由于所使用的number值和图像视图之间的对应关系是这样的:

number ImageView 
1   image1 
2   image2 
3   image3 
4   image4 

和数组的索引与图像视图对应的是这样的:

index  ImageView 
0   image1 
1   image2 
2   image3 
3   image4 

我们只需要减去一个从number,使其匹配数组索引。这意味着我们可以用这句话来访问我们想要的图像视图:

imageViewArray[number - 1] 

整条生产线将是这样的:

imageViewArray[number - 1].image = UIImage(named: array[randNumber]) 
+0

非常感谢您的帮助,这就是我一直在寻找的。我曾经使用过这一点,并粘贴代码时,我得到了同样的错误:“价值型‘字符串’没有成员‘形象’” – Gjeruldsen

+0

你确定申报'image1'和其他图像视图为'UIImageView'? @Gjeruldsen – Sweeper

+0

@IBOutlet弱VAR此搜索:UIImageView的! – Gjeruldsen