我需要从两个不同的数组中随机发送一个图像到UIImageView。我不知道如何处理这个?
var imgSetOne: [String] = ["car1.png", "car2.png", "car3.png", "car4.png", "car5.png"]
let imgOneRandom = Int(arc4random_uniform(5))
var imgSetTwo: [String] = ["bus1.png", "bus2.png", "bus3.png", "bus4.png", "bus5.png"]
let imgTwoRandom = Int(arc4random_uniform(5))
UIImage(named: imgSetOne[imgOneRandom]) OR UIImage(named: imgSetTwo[imgTwoRandom])
我正在尝试使用arc4random_uniform从第一个数组和第二个数组中选择随机图像。现在我想显示从第一个数组结果或第二个数组结果到UIImageView的图像。
答案 0 :(得分:4)
如果您的阵列具有相同的大小,那么您可以选择阵列随机选择图像:
let arrayIndex = Int(arc4random_uniform(2))
UIImage(named: arrayIndex == 0 ? imgSetOne[imgOneRandom] : imgSetTwo[imgTwoRandom])
请注意,如果数组具有不同的大小,并且您仍然希望从两个阵列中选择具有相同概率的每个图像,则需要稍微调整一下这个逻辑(将其留作作业除外)
答案 1 :(得分:0)
基于@Vladimir answer,您可以为此创建运算符:
func ||(left: String, right: String) -> String {
let isRight = Int(arc4random_uniform(2))
return isRight == 1 ? right : left
}
并像这样使用:
UIImage(named: "left" || "right")
答案 2 :(得分:0)
Vladimir's answer完全符合您的需要。如果你需要选择2个以上,你可以这样做:
let imgSetOne = ["car1.png", "car2.png", "car3.png", "car4.png", "car5.png"]
let imgOneRandom = imgSetOne[Int(arc4random_uniform(UInt(imgSetOne.count)))]
let imgSetTwo = ["bus1.png", "bus2.png", "bus3.png", "bus4.png", "bus5.png"]
let imgTwoRandom = imgSetTwo[Int(arc4random_uniform(UInt(imgSetTwo.count)))]
let candidates = [imgOneRandom, imgTwoRandom]
let finalPick = candidates[Int(arc4random_uniform(UInt(candidates.count)))]
UIImage(named: finalPick)