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

问题描述 投票:0回答:2

到目前为止,我已经创建了一个图像文件夹,并且我可以将其中 1 张图像分配给

UIImageView

但是我现在想做的是创建一个随机生成器,它将从文件夹中选择一个随机图像,所以如果我要创建一个按钮,我可以在一个

UIImageView
上单独且随机地显示所有图像。

但是,这个文件夹将包含 100 多个图像,因此我不想将每个图像硬编码到数组中。此外,图像的名称对于图像本身来说必须是唯一的。

我一直在网上搜索,但找不到有关如何编写适合我的需求的代码的信息。那么我如何快速从文件夹中获取并显示随机图像?

ios swift uiimageview
2个回答
6
投票

您可以这样命名您的图像

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),在其中放置所有图像的名称

enter image description here

最后

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)
}

3
投票

您需要创建一个字符串文件名数组并从该数组中选择一个随机文件名,或者您需要使用文件管理器 (

NSFileManager
) 获取文件夹中的文件列表,然后从该数组中进行选择。下界非常困难。

这是一些粗略的示例代码(未经测试)

//Set up your array of image names however you want...
let filenames =
"""
firstImage
secondImage
thirdImage
"""

let filenamesArray = filenames.components(separatedBy: "\n")
let aFilename = filenamesArray.randomElement()!
let anImage = UIImage(named:aFileName)
© www.soinside.com 2019 - 2024. All rights reserved.