Swift 从数组中选择一个随机图像

Posted

技术标签:

【中文标题】Swift 从数组中选择一个随机图像【英文标题】:Swift choose a random image from an array 【发布时间】:2016-08-31 09:08:35 【问题描述】:

尝试添加从外部数组中随机选择的背景图像。 random 函数正在工作,但它没有将值注入背景 UIImage。

代码是:

    let chooseImage = images.BackgroundImages
    let randomImage = chooseImage.sample()

    backgroundImage.image = UIImage(named: randomImage)
    print(randomImage)

打印显示的值正确,我在 UIImage 中尝试了“(randomImage)”。

编辑:如果我添加“(randomImage).jpg”,那么代码会按预期工作,但会迅速推断设备上的每种类型,即@2x、@3x 等。我需要使用资产名称吗?

谢谢

【问题讨论】:

【参考方案1】:
    //in case of arrImage has UIImages

    if arrImage.count > 0 
        let randomIndex = random() % arrImage.count
        let randomImage = arrImage.objectAtIndex(randomIndex) as! UIImage
    else
        let randomImage = placeholderImage
    

    //in case of arrImage has Strings

    if arrImage.count > 0 
        let randomIndex = random() % arrImage.count
        let randomString = arrImage.objectAtIndex(randomIndex) as! String
        let randomImage = UIImage(name:randomString)
    else
        let randomImage = placeholderImage
    

【讨论】:

数据类型是字符串@Peter 让我清楚chooseImage必须是数组吧?而且 randomImage 不是零,对吧? 随机图像不是 nil - 它是字符串 background1、background2 等的预组合数组 从不random() % something!谷歌模偏差。请改用arc4random_uniform【参考方案2】:
RandomNumber = Int(arc4random_uniform(UInt32(self.imageArr.count)))
//imageArr is array of images

imageArr[RandomNumber]

试试这个,如果你仍然需要任何帮助,可以问我。

【讨论】:

【参考方案3】:

它成功运行。当您运行应用程序时,它会一直为您提供不同的图像

   imageArr = ["1.jpeg","2.jpeg","3.jpeg","4.jpeg"]
    let RandomNumber = Int(arc4random_uniform(UInt32(self.imageArr.count)))
    //imageArr is array of images
     let image = UIImage.init(named: "\(imageArr[RandomNumber])")

    let imageView = UIImageView.init(image: image)

【讨论】:

【参考方案4】:

您现在可以对符合Sequence 的任何内容执行randomElement()

【讨论】:

以上是关于Swift 从数组中选择一个随机图像的主要内容,如果未能解决你的问题,请参考以下文章

swift 摇动电话代码以更新从阵列中选择的随机图像

如何从图像文字数组中选择单个图像并将其保存为swift 5中的用户默认值

如何使用图像视图从图像数组中创建随机图像生成器?

如何快速从文件夹中获取随机图像?

在Kotlin中选择不同的随机图像

Swift ios 只从数组中选择字符串值