gpt4 book ai didi

swift - 当 NSCollectionView 滚动到内容末尾时加载更多数据 (macOS)

转载 作者:行者123 更新时间:2023-11-30 11:53:30 26 4
gpt4 key购买 nike

在我的 macOS 应用程序中,我有一个 NSCollectionView。我下载了数据并将其放入 Collection View 中,现在我想在用户滚动到可用内容的底部时加载更多数据。在 iOS 上,我可以使用 UIScrollViewDelegate.scrollViewDidEndDragging(_:willDecelerate:) 执行类似的操作,但我不确定如何在 macOS 上执行此操作。

当用户滚动到 View 底部时如何触发加载?

最佳答案

我在 iOS 上使用的一种可能的方法是在显示特定项目时触发加载。在 macOS 上,这可以使用 NSCollectionViewDelegatecollectionView(_:willDisplay:forRepresentedObjectAt) 方法来完成。像这样的事情:

func collectionView(_ collectionView: NSCollectionView, willDisplay item: NSCollectionViewItem, forRepresentedObjectAt indexPath: IndexPath) {
if indexPath == self.lastIndexPath {
loadNextSection()
}
}

func loadNextSection() {
guard let self.loading == false else {
return
}
self.loading = true
self.loader.loadSection(nextSection) { objects in
self.nextSection += 1
self.sections.append(objects)
self.lastIndexPath = IndexPath(indexes: [self.sections.count, objects.count])
DispatchQueue.main.async {
self.collectionView.reloadData()
}
}
}

关于swift - 当 NSCollectionView 滚动到内容末尾时加载更多数据 (macOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48083851/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com