【发布时间】:2020-07-21 02:56:18
【问题描述】:
我想检测用户何时滚动到下一页(在启用分页的 collectionView 中)。一旦用户开始滚动到下一个单元格,我就会使用collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) 函数对其进行准备。在这里,我设置了一个变量,指示哪个将是下一个可见单元格。
然后,当用户停止拖动时,我使用scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) 函数运行视觉更新。此时我知道哪个单元格是可见的,因为我之前将它保存在变量中。
但是,当用户开始拖动collectionView,然后滚动回到起始视图时,collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) 已经保存了下一项。这会导致以下函数 (scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool)) 运行不正确的代码(可视化更新)。
有没有办法知道用户何时取消或实际执行滚动到下一页,以便我可以阻止 scrollViewDidEndDragging 更新,除非滚动“成功”?
【问题讨论】:
标签: ios swift uitableview uicollectionview uiscrollview