我有一个Venue
类型的数组(4项),每个数组包含imgURLs
字符串的数组(2项),我得到错误:索引超出范围在collectionView
cellForItemAt
的以下行。我试图在tableview单元格的collectionView中显示每个Venue的图像。
let urlString = filteredVenueArray[collectionView.tag].imgURLs[collectionView.tag]
cellForItemAt
功能:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "VenueListingCellImage", for: indexPath) as! VenueListingCellImage
let urlString = filteredVenueArray[collectionView.tag].imgURLs[collectionView.tag]
let imgURL = URL(string: urlString)
cell.configureCell(url: imgURL!)
return cell
}
编辑:numberOfItemsInSection
功能
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return filteredVenueArray[collectionView.tag].imgURLs.count
}
答案 0 :(得分:3)
更改此行
let urlString = filteredVenueArray[collectionView.tag].imgURLs[collectionView.tag]
要
let urlString = filteredVenueArray[collectionView.tag].imgURLs[indexPath.item]
答案 1 :(得分:1)
在您的代码中替换:
let urlString = filteredVenueArray[collectionView.tag].imgURLs[collectionView.tag]
使用:
let urlString = filteredVenueArray[collectionView.tag].imgURLs[indexPath.item]
答案 2 :(得分:1)
CollectionView cellForItemAt indexPath
通过indexPath
对您的数组进行迭代,以便访问您应该使用的每个项目indexPath.item
这是问题,您应该使用,
let urlString = filteredVenueArray[collectionView.tag].imgURLs[indexPath.item]