我创建了一个名为imageNames的列表。我用这部分代码来获得随机图像
@IBAction func showImages(_ sender: Any) {
let RandomImage: Int = Int
(arc4random_uniform(20))
imageOne.image = UIImage (named:
imageNames[RandomImage])
由于某种原因,它对我不起作用。我曾想过要制作一个var而不是og let,但仍然给我int = int
的错误有人在乎协助吗?
答案 0 :(得分:3)
摆脱Int
和(
之间的换行符。这就是导致您出错的原因。
此外,您应该使用图像名称数组的大小来控制随机索引的范围。 (如果您对数字范围进行硬编码,然后在以后更改图像名称的数组,则如果数组中的名称较少,则会崩溃,或者如果不增加最大值,则会默默地从不选择任何新名称索引。)
当我们使用它时,变量名应以小写字母开头。考虑以下代码:
@IBAction func showImages(_ sender: Any) {
//Sample image names - replace with your own array of names
let imageNames = ["one", "two", "three"]
let randomIndex: Int = Int(arc4random_uniform(UInt32(imageNames.count)))
let randomName = imageNames[randomIndex]
imageOne.image = UIImage(name: randomName)
}
答案 1 :(得分:3)
以下是Swift 4.2的答案,其中不需要arc4random
。
@IBAction func showImages(_ sender: Any) {
let randomIndex = Int.random(in: 0..<imageNames.count)
imageOne.image = UIImage(named: imageNames[randomIndex])
答案 2 :(得分:1)
在Swift 4.2中,它仍然更容易
imageOne.image = UIImage(named: imageNames.randomElement())
答案 3 :(得分:0)
答案 4 :(得分:0)
我更喜欢使用shuffle()
方法对数组元素进行随机重新排序。