2015-09-27 3 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 Первые пять строк фрагмента в моем ответе были предназначены только для демонстрации. Вы не нуждаетесь в них в своем фактическом коде, потому что эти переменные уже существуют. – hennes

+0

На этот раз у меня была эта ошибка; Член экземпляра «ECard1» не может использоваться для типа «ViewController» – Bronson

0

Другой подход состоит в назначении уникальных тегов в UIImageView экземпляров в Interface Builder, например, начиная с 101 для индекса 1 на основе. Затем вы можете получить доступ к изображениям с помощью

var cardno = 1 
let imageView = view.viewWithTag(cardno + 100) as! UIImageView 
Смежные вопросы