如何解决Swift-如何获取第
我有一个UICollectionView
,其中有2个部分具有不同的数据。当用户在某节中滚动20个单元格时,我正在尝试在该节中加载更多数据。
例如:
第0节和第1节都有20个单元格。
当我滚动查看第0节中的所有20个单元格时,应该将更多数据加载到该节中,最后在第0节中有40个单元格,在第1节中有20个单元格。
这是我所拥有的,但不能按预期工作:
func collectionView(_ collectionView: UICollectionView,willdisplay cell: UICollectionViewCell,forItemAt indexPath: IndexPath) {
switch indexPath.section {
case 0:
if indexPath.row == popularMovies.count {
print("Section 0,Row \(indexPath.row) - Loading more popular movies...")
}
break
case 1:
if indexPath.row == NowPlayingMovies.count {
print("Section 1,Row \(indexPath.row) - Loading more Now streaming movies...")
}
break
default: break
}
}
Section 1,Row 19 - Loading more Now streaming movies... <--- this is printed when hit cell 13 in section 0
Section 0,Row 19 - Loading more popular movies... <--- this is printed as expected when hit cell 20 in section 0
有可能吗?
解决方法
签出UICollectionViewDataSourcePrefetching
,除了例如,它可以轻松用于实现滚动时加载更多数据。预加载要滚动到可见区域的单元格的图像。
例如:
extension MoviesViewController: UICollectionViewDataSourcePrefetching {
func collectionView(_ collectionView: UICollectionView,prefetchItemsAt indexPaths: [IndexPath]) {
let maxItem = indexPaths.map { $0.item }.max() ?? 0
if maxItem >= self.popularMovies.count - 3 {
// load new movies
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。