每次按下按钮时我都想要一个与当前不同的随机图像
这是我使用的代码,但有时图像没有更新:
@IBAction func nextBarButton(sender: UIBarButtonItem) {
var image1 = UIImage(named: "RedBalloon1.jpg")
var image2 = UIImage(named: "RedBalloon2.jpg")
var image3 = UIImage(named: "RedBalloon3.jpg")
var image4 = UIImage(named: "RedBalloon4.jpg")
var images = [image1, image2, image3, image4]
var indexPath = Int(arc4random_uniform(UInt32(images.count)))
currentIndex = indexPath
if currentIndex == indexPath {
indexPath = Int(arc4random_uniform(UInt32(images.count)))
}
self.imageView.image = images[indexPath]
self.balloonLabel.text = "\(count++) Balloon"
}
最佳答案
嗯,因为这条线
currentIndex = indexPath
下一行总是返回true
:
if currentIndex == indexPath {
所以下一行设置了indexPath
indexPath = Int(arc4random_uniform(UInt32(images.count)))
并且它有四分之一的机会等于当前选择的图像。
你需要一个 do-while
loop , 以确保根据需要选择新的随机数:
var images = [image1, image2, image3, image4]
var indexPath = 0
do {
indexPath = Int(arc4random_uniform(UInt32(images.count)))
} while currentIndex == indexPath
之后可以设置currentIndex = indexPath
。
关于ios - 如何随机化我的 ImageView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31752353/