2015-09-27 69 views
0

我在應用程序上有一個按鈕和5個UIImageView。 UIImageViews的名稱是ECard1,ECard2,ECard3 ....爲UIImageView名稱使用常量

我想,當我按下按鈕,隨機卡被選中,並顯示在下一個UIImageViewer。但是我不能在代碼中自動增加UIImageView的名字。我試過這個:

ECard1.image = UIImage (named: Ekartlar[0]) 
var cardno = 1 
cardno = cardno + 1 
var cardname = "ECard" 
var viewername = cardname + string(cardno) 
viewername.image = UIImage (named: Ekartlar[1]) -- I can't use like that 

我該怎麼做?

+1

您需要將五個鏡像視圖的實例存儲在數組中,並指它與索引訪問圖像視圖。 – user523234

+0

@ user523234你能告訴我它是怎麼樣的語法? – Bronson

回答

0

只需將圖像視圖放入數組中,並通過其索引訪問適當的視圖。

let ECard1 = UIImageView() 
let ECard2 = UIImageView() 
let ECard3 = UIImageView() 
let ECard4 = UIImageView() 
let ECard5 = UIImageView() 

let imageViews = [ECard1, ECard2, ECard3, ECard4, ECard5] 

var cardno = 1 
imageViews[cardno].image = UIImage(named: "foo") 
+0

但我有這個錯誤:無效ECard1重新宣佈(所有卡) – Bronson

+0

@Bronson在我的答案片段的前5行只是爲了演示。您在實際代碼中不需要它們,因爲這些變量已經存在。 – hennes

+0

這次我有這個錯誤;實例成員'ECard1'不能用於'ViewController'類型 – Bronson

0

一種不同的方法是分配給在界面生成器的實例UIImageView例如唯一的代碼與101起始的基於1的索引。然後,你可以用

var cardno = 1 
let imageView = view.viewWithTag(cardno + 100) as! UIImageView