移动当前未加载的 UICollectionViewCell



我正在使用Firebase为客户端创建网络应用程序。对于每个用户,我都会在其 Firebase 属性timestamp中添加一个观察者,这意味着当用户上传状态更新时,Firebase 观察器会被触发,以便 Feed 中的用户单元格移动到顶部(每个用户只有一个单元格(。以下是 Firebase 代码:

Database.database().reference().child(forUser.userID).child("timestamp").observe(.value) { (snapshot) in
        if let timestamp = snapshot.value as? Int {
            if let cell = self.feedCollectionView.cellForItem(at: indexPath) as? FeedCell {
                self.feedCollectionView.moveItem(at: indexPath, to: IndexPath(row: 0, section: 0))
            }
        }
    }

我很有可能有 100-200 个用户,也许最后一个用户更新了他的状态并且必须移动到顶部,即使他的集合视图单元格甚至从未加载过。

当我运行它时,它会为每个可见单元格打印它是可移动的,并为每个无法访问卸载单元格的不可见单元格打印。

如何访问从未加载过的单元格并将其移动到顶部?

不应

移动可能加载也可能未加载的单元格,而应通过按时间戳排序来更新集合视图的数据源。然后你可以调用self.feedCollectionView.reloadData((,它会自动把它放在顶部。

最新更新