我正在使用XCode 6和iOS 8在Swift中开发应用程序。这个应用程序包含一个我想要加载图像数组的集合视图。
当我只使用一张图像时,我可以按照我的喜好重复多次,但是当遍历数组时,只会重复最后一张图像,而不是出现在集合视图中的唯一图像。
我的数组在我的类中被定义为:
var listOfImages: [UIImage] = [
UIImage(named: "4x4200.png")!,
UIImage(named: "alligator200.png")!,
UIImage(named: "artificialfly200.png")!,
UIImage(named: "baitcasting200.png")!,
UIImage(named: "bassboat200.png")!,
UIImage(named: "bighornsheep200.png")!,
UIImage(named: "bison200.png")!,
UIImage(named: "blackbear200.png")!,
UIImage(named: "browntrout200.png")!
]
接下来,我有以下内容来遍历数组并显示图像:
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! CollectionViewCell
// Configure the cell
for images in listOfImages{
cell.imageView.image = images
}
return cell
}
这会编译并显示,但只显示browntrout200.png。显示所有图像我缺少什么?
答案 0 :(得分:6)
正在发生的事情是对于任何集合视图单元格,您正在迭代数组并将单元格的图像设置为数组中的每个图像。数组中的最后一个图像是" browntrout200.png"那是你看到的唯一一个。您需要使用indexPath来获取阵列中的单个图像。
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! CollectionViewCell
cell.imageView.image = listOfImages[indexPath.row]
return cell
}
另外,请确保您设置了另一个UICollectionViewDataSource方法,以返回listOfImages数组中的项目数。
override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return listOfImages.count
}