iphone - 移动当前未加载的 UICollectionViewCell

标签 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 个用户,也许最后一个用户更新了他的状态并且必须移到顶部,即使他的 Collection View 单元格从未加载过。

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

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

最佳答案

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

关于iphone - 移动当前未加载的 UICollectionViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49037886/

相关文章:

iphone - 声音操作反向/在iPhone上向后播放录制的声音

iphone - 将方向更改回纵向

iphone - 在IOS中检测到拍手

iphone - 如何缓慢隐藏 UI 元素

swift - JSQMessages 显示在 Show Segue 的导航栏下

ios - 文本字段未检测到触摸

结构体属性中的 SwiftUI 部分

ios - CollectionView 2 个部分。如何从内部类快速访问 socket 变量

ios - 在 View Controller 的单个 Collection View 中显示多个图表,如条形图、饼图、折线图

ios - Swift Collection View 水平和垂直滚动