如何返回正确的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将返回
任何人有什么建议?
这里是缩短你的代码的方式。
制造阵列出来的图像观点:
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])
非常感谢您的帮助,这就是我一直在寻找的。我曾经使用过这一点,并粘贴代码时,我得到了同样的错误:“价值型‘字符串’没有成员‘形象’” – Gjeruldsen
你确定申报'image1'和其他图像视图为'UIImageView'? @Gjeruldsen – Sweeper
@IBOutlet弱VAR此搜索:UIImageView的! – Gjeruldsen
所以,你想缩短代码? – Sweeper