2016-06-13 35 views
1

不幸的是,我有36 UIImages,需要爲每個圖像設置一個隨機圖像。隨機圖像到(很多)圖像視圖

我的6張圖片被命名;

"Owl1" 
"Owl2" 
"Owl3" 
"Owl4" 
"Owl5" 
"Owl6" 

所以,我想爲我的36個不同的UIImages設置一個隨機圖像。做這個的最好方式是什麼?數組?這是我迄今爲止的「嘗試」。

var images: [UIImage] = [ 
UIImage(named: "Owl1")!, 
UIImage(named: "Owl2")!, 
UIImage(named: "Owl3")!, 
UIImage(named: "Owl4")!, 
UIImage(named: "Owl5")!, 
UIImage(named: "Owl6")! 
] 

var randomUIImage = [Image1, Image2, Image3, Image4, Image5...] 
     randomUIImage.shuffleInPlace() 

randomUIImage[0].image = images[0] 
randomUIImage[1].image = images[1] 

但我意識到這是行不通的,而我不能讓所有36張圖片的代碼...任何人有更好的主意? ;-)

回答

3

提示:你可以使用範圍+地圖來創建您的圖像數組。

let images = (1...6).map { UIImage(named: "Owl\($0)") } 

(1...6)產生INTS的集合,從1到6(含6個),並與map我們創造的UIImage一個新實例爲每個詮釋,使用它們的命名 - 因爲你爲了命名你的圖片,很方便。這就像做一個循環,並追加的UIImage新intance到循環內的數組,使用索引的命名:「Owl1」,「OWL2」等

如果你也有一個數組的UIImageViews,您可以使用循環分配圖像。

下面是一個例子(我沒有核實上的Xcode,但你需要的應該是接近):

for view in imageViewsArray { // the array with the 36 imageViews 
    // a random index for the array of 6 images 
    let randomIndex = Int(arc4random_uniform(UInt32(images.count)) 
    // assign the randomly chosen image to the image view 
    view.image = images[randomIndex] 
} 
+0

你總是1 - 正在增加我埃裏克;) –

+0

不熟悉的代碼,我如何使用它將圖像實際應用到圖像視圖? :-) –

+0

順便說一句,你知道我只有6個圖像(貓頭鷹)和故事板36個圖像視圖? :-) –

3

你可以有圖像名稱的數組和圖像追究他們的陣列..

var imageNames:[String] = ["Owl1", "Owl2"....etc] 
var owlImages:[UIImage] = [] 

然後隨機追加圖像

for index in 0...imageNames.count - 1 { 
    var randomInt = Int(arc4random_uniform(UInt32(imageNames.count)) //a random int from 0 to the size of your array 
    owlImages.append(UIImage(named: imageNames[randomInt] //add the random image to the array 
}