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 从数组中选择一个随机图像的主要内容,如果未能解决你的问题,请参考以下文章