移动当前未加载的UICollectionViewCell

问题描述 投票:1回答:1

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

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

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

iphone swift collectionview
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.