В настоящее время я загружаю UITableView с 4 ячейками, выбранными из Firebase (экран 1), каждая ячейка содержит UICollectionView для отображения изображений места.-вниз для обновления вида (экран 2), неправильный UICollectionView загружается в место 3-й ячейки (экран 3)
Как я могу убедиться, что соответствующий UICollectionView
загружен для правильного Venue
Cell
?
Причинение Неустранимая ошибка: индекс выходит за пределы диапазона в numberOfItemsInSection
.
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return filteredVenueArray[collectionView.tag].imgURLs.count
}
Вот мой 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[indexPath.item]
let imgURL = URL(string: urlString)
cell.configureCell(url: imgURL!)
return cell
}
Вот мой UITableView
willDisplay
функционал.
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
//If cell has already been displayed it will just return
if maxCellIndexAppeared > indexPath.row {
return
}
//ELSE
//here reset the current maximum index
maxCellIndexAppeared = indexPath.row
//animates the cell as it is being displayed for the first time
cell.alpha = 1
let transform = CATransform3DTranslate(CATransform3DIdentity, -10, 0, 0)
cell.layer.transform = transform
UIView.animate(withDuration: 0.5) {
cell.alpha = 1
cell.layer.transform = CATransform3DIdentity
}
guard let tableViewCell = cell as? VenueListingCell else { return }
tableViewCell.setCollectionViewDataSourceDelegate(self, forRow: indexPath.row)
}//end func