首页 文章

集合视图中的项目单元格保持重新加载数据

提问于
浏览
0

我目前在表视图中的每个单元格中都有一个集合视图 . 我的问题是当我尝试从嵌套的信息数据中提取数据时,数据没有完全正确地传输到单元格,因为它不断重新加载数据并开始在单元格中放入不正确的信息 .

我目前有一个索引设置来确定你在集合视图中使用哪个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 回答

  • 0

    我可以在这一行看到问题,

    if self.genresArrayIndex[index].count > indexPath.row {
    

    在这里你使用 index 变量获取一些数组并检查它是否大于 indexPath.rowavoid array out of bounds 异常,这是错误的 .

    因为如果此条件为false,那么您的单元格将显示它在上一次更新中具有此条件为真的旧数据 .

    所以你应该删除这个if条件 . 如果它崩溃然后更正操作 index 变量的代码,因为这是实际问题 . 同时检查 numberOfRowsInSection 方法,根据 index 变量返回正确的计数

相关问题