我目前在表视图中的每个单元格中都有一个集合视图 . 我的问题是当我尝试从嵌套的信息数据中提取数据时,数据没有完全正确地传输到单元格,因为它不断重新加载数据并开始在单元格中放入不正确的信息 .
我目前有一个索引设置来确定你在集合视图中使用哪个tableView单元格,并且工作正常,只是当您在tableview单元格中滚动时,uicollectionview成为问题 .
这是我的Item的单元格
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
{
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath) as! HomeSongCellCVC
cell.backgroundColor = UIColor.clear//randomColor()
if self.genresArrayIndex[index].count > indexPath.row {
let genre = self.genresArrayIndex[index][indexPath.row]
cell.delegate = self
cell.upload = genre
return cell
} else {
return cell
}
}
我怎样才能使它总是从我的嵌套数组中为我的collectionView显示正确的信息?
我正在考虑将WillDisplayCell用于collectionView,但我认为这不会起作用,因为我正在尝试加载数据 .
1 回答
我可以在这一行看到问题,
在这里你使用
index
变量获取一些数组并检查它是否大于indexPath.row
到avoid array out of bounds
异常,这是错误的 .因为如果此条件为false,那么您的单元格将显示它在上一次更新中具有此条件为真的旧数据 .
所以你应该删除这个if条件 . 如果它崩溃然后更正操作
index
变量的代码,因为这是实际问题 . 同时检查numberOfRowsInSection
方法,根据index
变量返回正确的计数