我有全屏UICollectionView单元格(左第一->右最后)。当我滚动到最后一个单元格时,将检查3个属性:isTracking,isDragging和isDecelerating。
当我在最后一个单元格上时,向左拖动一点(以查看前一个单元格的价格),然后(不松开手指)向右拖动(锚定该单元格)。结束触摸并检查属性。
在此过程之后,属性状态为:
isTracking = NO; //false
isDragging = YES; //true
isDecelerating = NO; // false
问题是,isDragging状态保存了很长时间,在这段时间内UICollectingView向我显示了isDragging处于真实状态(但没有人与该单元进行交互)。我需要此属性来了解何时重新加载集合。状态仅在新拖动后刷新。
因此,问题是,如何改善我的代码和UICollectionView的行为,以便从isDragging属性获取正确的值?
有什么方法可以理解collecitonView处于“安静”状态?
附言我正在使用没有任何自定义类和多线程的清晰本机UICollectionView
编辑:添加了问题“是否存在……“安静”状态?”
最佳答案
当滚动结束时,您不应轮询isTracking
和isDragging
来学习。使用委托方法scrollViewDidEndDragging(_:willDecelerate:)
和scrollViewDidEndDecelerating(_:)
。