如何快速从文件夹中获取随机图像?
Posted
技术标签:
【中文标题】如何快速从文件夹中获取随机图像?【英文标题】:How to get a random image from a folder in swift? 【发布时间】:2016-08-06 21:33:15 【问题描述】:到目前为止,我已经创建了一个图像文件夹,并且可以将其中 1 个图像分配给 UIImageView
。
但是我现在要做的是创建一个随机生成器,它将从文件夹中选择一个随机图像,所以如果我要创建一个按钮,我可以在单个 @987654324 上分别随机显示所有图像@。
但是,这个文件夹将包含 100 多个图像,所以我不想将每个图像硬编码到一个数组中。此外,图像的名称对于图像本身必须是唯一的。
我一直在网上搜索,但找不到有关如何编写适合我需要的代码的信息。那么如何快速从文件夹中获取并显示随机图像?
【问题讨论】:
只需获取您的文件夹内容(网址数组)并随机选择一个 ***.com/questions/27259332/…***.com/questions/27721418/… 【参考方案1】:你可以这样命名你的图片
image_0
image_1
image_2
然后使用此代码填充您的UIImageView
let numberOfImages: UInt32 = 100
let random = arc4random_uniform(numberOfImages)
let imageName = "image_\(random)"
imageView.image = UIImage(named: imageName)
更新
由于您不想重命名图像,您可以创建一个 plist 文件(类型为 Array),在其中放置图像的所有名称
最后
func loadRandomImage()
let path = NSBundle.mainBundle().pathForResource("Images", ofType: "plist")!
let names = NSArray(contentsOfFile: path) as! [String]
let random = Int(arc4random_uniform(UInt32(names.count)))
let imageName = names[random]
imageView.image = UIImage(named: imageName)
【讨论】:
名称无关紧要,只需获取您的文件夹内容,使用它的计数来限制生成的随机索引。 ***.com/questions/27259332/… @AndrewMontague:你在使用Assets.xcassets
吗?出于多种原因,您应该将图片放在此处
@AndrewMontague:使用 Assets.xcassets 很重要,尤其是在您制作游戏时。
@AndrewMontague:我在答案中添加了一个新部分,请查看。或尝试 @Leo Dabus 建议的解决方案。
谢谢,这个方法完全符合我的要求,非常感谢你的帮助!【参考方案2】:
您需要创建一个字符串文件名数组并从数组中选择一个随机文件名,或者您需要使用文件管理器 (NSFileManager
) 获取文件夹中的文件列表,然后从中选择大批。下界非常难。
【讨论】:
以上是关于如何快速从文件夹中获取随机图像?的主要内容,如果未能解决你的问题,请参考以下文章