我正在UITableView的每个单元格内实现UICollectionView 现在,我正在从API获取数据并将此数据保存在数组中,问题是,即使在数组填充数据之前,当然也会调用UICollectionView委托方法numberOfItemsInSection,因此我得到了索引超出范围错误。 问题是如何为返回的计数赋予默认值,或者如何使数组变异。 这是我正在使用的代码:
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
// let cell = collectionView.superview as! MainTableViewCell
// let index = tableView.indexPath(for: cell)
let countIndex = self.consultations[collectionView.tag].images.count
return countIndex
}
答案 0 :(得分:0)
您需要检查找到的数组及其计数。
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
if let consultationsTmp = self.consultations, let colTag = consultationsTmp[collectionView.tag],let imagesTmp = colTag.images
{
return imagesTmp.count
}
return 0
}
答案 1 :(得分:-1)
我用另一种方法解决了这个问题。
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
let cell = collectionView.superview?.superview?.superview as! MainTableViewCell
print("SSSSSSSSSSSSSSSSS\(cell)")
let index = self.tableView.indexPathForRow(at: cell.center)
print("EEEEEEEEEEEEEE\(index?.row)")
let countIndex = self.consultations[index?.row ?? 00].images.count
return countIndex
}