移动当前未加载的UICollectionViewCell

时间:2018-02-28 20:20:52

标签: iphone swift collectionview

我正在使用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个用户,也许最后一个用户更新了他的状态并且必须被移到顶部,即使他的集合视图单元格从未被加载过。

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

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

1 个答案:

答案 0 :(得分:0)

您应该通过在时间戳上对其进行排序来更新collectionview的数据源,而不是移动可能加载或未加载的单元格。然后你可以调用self.feedCollectionView.reloadData()并将它自动放在顶部。