ios - 如何随机化我的 ImageView ?

标签 ios image swift random

每次按下按钮时我都想要一个与当前不同的随机图像

这是我使用的代码,但有时图像没有更新:

    @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/

相关文章:

ios - Appcelerator : BOMStream BOMStreamWithFileAndSys(int, off_t, size_t, int, char *, BomSys *)

javascript - 添加外部 jQuery 链接后 HTML 上的图像消失

java - 使用 JavaFX 显示 OpenCV Mat

iOS:iOS13中显示popover边框的问题

无需额外转换的 Swift Response 模板

iphone - 缩放基于 View 的 iOS 应用程序的页面

ios - 是否可以从 TestFlight 用户检索错误日志消息?

ios - 接入互联网时 SCNetworkReachabilityFlags 为 0

html - HTML 中的 BASE64 不起作用

swift - 从 XPC 服务创建 NSXPCConnection