无法在 UICollectionViewController 上平滑滚动以加载大量数据
Not scrolling smooth on UICollectionViewController for large data loading
我是 iOS 的新手,我正在尝试在 collectionviewcontroller 中加载数据。数据正在加载和滚动以获取更少的数据。但是在加载大数据时滚动会卡住。
但是随着我 collection 中数据的增加,它的滚动变得粗糙,加载一些页面后,向上或向下滚动变得非常困难。它卡住了。
不要在 cellForItem
中重新加载 collectionView
,删除这部分:
DispatchQueue.main.async {
self.collectionView?.reloadData()
}
并删除其中的大部分 reloadData
电话。这是一个重量级的操作——只有当你真的需要重新加载它时才调用它——这意味着当整个集合视图的数据模型发生变化时。
旁注:
不使用indexPath.row
,而是indexPath.item
,row
用于UITableView
s,而不用于UICollectionView
s。
索引路径中的 cellForItem 的目的是重新加载数据。你为什么要手动重新加载?
DispatchQueue.main.async {
self.collectionView?.reloadData()
}
删除上面的行再次尝试 运行..?
删除所有那些 reloadData
调用并尝试使用 Observers
(willSet
, didSet
) 以便在真正发生更改时加载或修改内容。
Thanks everyone... Once I removed
self.collectionView?.reloadData()
我的问题已解决。非常感谢。
我是 iOS 的新手,我正在尝试在 collectionviewcontroller 中加载数据。数据正在加载和滚动以获取更少的数据。但是在加载大数据时滚动会卡住。 但是随着我 collection 中数据的增加,它的滚动变得粗糙,加载一些页面后,向上或向下滚动变得非常困难。它卡住了。
不要在 cellForItem
中重新加载 collectionView
,删除这部分:
DispatchQueue.main.async {
self.collectionView?.reloadData()
}
并删除其中的大部分 reloadData
电话。这是一个重量级的操作——只有当你真的需要重新加载它时才调用它——这意味着当整个集合视图的数据模型发生变化时。
旁注:
不使用indexPath.row
,而是indexPath.item
,row
用于UITableView
s,而不用于UICollectionView
s。
索引路径中的 cellForItem 的目的是重新加载数据。你为什么要手动重新加载?
DispatchQueue.main.async {
self.collectionView?.reloadData()
}
删除上面的行再次尝试 运行..?
删除所有那些 reloadData
调用并尝试使用 Observers
(willSet
, didSet
) 以便在真正发生更改时加载或修改内容。
Thanks everyone... Once I removed
self.collectionView?.reloadData()
我的问题已解决。非常感谢。