2015-03-07 8 views
0

Я довольно уверен в том, как создать массив изображений с использованием UIImage, но я не могу найти никаких инструкций о том, как ссылаться на эти образы массива с циклом for, мои попытки кода всегда вызывают ошибку, которая говорит uiimage не конвертируется в int.массив uiimage для цикла

Я хочу, чтобы перебирать массив, а затем отображать каждое изображение в последовательности:

var imageArray: [UIImage] = [ 
UIImage(named: "image1.png")!, 
UIImage(named: "image2.png")! 
] 
for element in enumerate(imageArray) { 
imageLabel.image = (imageArray[element]) 
} 

Идея заключалась в том, последовательность изображений будет отображаться на iPhone (автоматически или нажатием кнопки).

Я знаю, что это неправильный код, но я хотел дать суть того, что я пытаюсь сделать, я знаю, что есть лучшие способы сделать то же самое, но я пытаюсь узнать пределы и возможности быстрого кода, и я делаю это, пробуя различные идеи (хорошие или плохие), которые приходят мне в голову, когда я изучаю каждый аспект быстрого. Заранее спасибо!

ответ

1

В основном это цикл for-in, который выполняет итерацию элементов, хранящихся в вашем массиве. Набор повторяющихся элементов имеет диапазон от 0 (первый элемент) до длины массива, как указано с помощью оператора диапазона полуоткрытия .. <
Значение элемента устанавливается на первое число в range (0), и выполняются операторы внутри цикла.

var imageArray: [UIImage] = [ 
    UIImage(named: "image1.png")!, 
    UIImage(named: "image2.png")! 
] 

for element in 0..<imageArray.count { 

    imageLabel.image = (imageArray[element]) 
} 

PS Мы хотим использовать оператор полуоткрытого диапазона, поскольку она содержит первое значение, но не его конечное значение, а не оператор замкнутых (а ... б), потому что тогда мы получим ошибка «Индекс массива вне диапазона».

4

Вы делаете все труднее, чем им нужно. Вы можете просто использовать for-in, чтобы получить каждое изображение непосредственно, не заботясь о своем индексе:

for element in imageArray { 
    imageLabel.image = element 
} 

enumerate(imageArray) возвращает кортежи, которые содержат индекс элементов сопряженных с элементом. Вы бы использовали его следующим образом:

for (index, element) in enumerate(imageArray) { 
    println("processing index \(index)") 
    imageLabel.image = element 
} 
Смежные вопросы