0
这是问题所在。收集查看时排序未排序的数组
创建一个json对象数组后,我对它们进行排序。当我加载控制器时,集合视图会闪烁未排序的数组,然后显示已排序的数组(请参阅下面的演示)。
CollectionView Flicker Problem Demo
我试过的要对这个问题的一些方法。
GCD首先完成排序,然后重新加载收集视图。
GCD删除数组,然后继续请求。
Dispatch异步排序和集合视图重新加载。
这里是我的代码
ref.observeSingleEvent(of: .value, with: { (snapshot) in
self.collectionView?.refreshControl?.endRefreshing()
guard let dictionaries = snapshot.value as? [String: Any] else { return }
dictionaries.forEach({ (key, value) in
guard let dictionary = value as? [String: Any] else { return }
var post = Post(user: user, dictionary: dictionary)
post.id = key
self.posts.sort(by: { (p1, p2) -> Bool in
return p1.creationDate.compare(p2.creationDate) == .orderedDescending
})
self.posts.append(post)
self.collectionView?.reloadData()
}, withCancel: { (err) in
print("Failed to fetch like info for post:", err)
})
})
我真的不知道自己还能做些什么。任何想法?
解决了这个问题!我也有一个方法,在获取请求中有一个获取请求..同样的问题依然存在..任何想法我可以解决这个问题? – user7045671