用于循环的uiimage数组

时间:2015-03-07 13:51:37

标签: arrays swift uiimage

我非常肯定如何使用UIImage创建一个图像数组,但我找不到任何关于如何使用for循环引用这些数组图像的指令,我的代码尝试总是产生一个错误,表示uiimage不可转换到int。

我想遍历数组,然后按顺序显示每个图像:

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

想法是,iPhone上会显示一系列图像(自动或按下按钮)。

我知道这是不正确的代码,但我想给出我想要做的事情的要点,我知道有更好的方法来做同样的事情,但我正在努力学习限制和能力快速的代码,我通过尝试各种想法(好的或坏的)来实现这一点,因为我学习了swift的每个方面。提前谢谢!

2 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:1)

基本上这是一个for-in循环,用于迭代存储在数组中的项目。正在迭代的项目集合的范围从0(第一个元素)到数组的长度,如使用半开放范围运算符所指示的那样。
element的值设置为范围(0)中的第一个数字,并执行循环内的语句。

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

for element in 0..<imageArray.count {

   imageLabel.image = (imageArray[element])
}

PS 我们想要使用半开放范围运算符,因为它包含其第一个值,但不包含其最终值而不是闭合范围运算符(a ... b)因为那样我们就会得到“数组索引超出范围”错误。