UIScrollView(UITableView、UICollectionView)如何监控滑动停止

在代理UIScrollViewDelegate中:
//手指滑动开始调用
scrollViewWillBeginDragging(_ scrollView: UIScrollView)
//手指离开屏幕调用
scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool)
//快速滑动结束调用
scrollViewDidEndDecelerating(_ scrollView: UIScrollView)
这样就会有一个冲突,无法监控滑动什么时候停止(包括手指离开屏幕和快速滑动结束的时机)。
方法:

func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
        if !decelerate {
            if scrollView.isTracking && !scrollView.isDragging && !scrollView.isDecelerating {
                scrollStop()
            }
        }
    }
    func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
        if !scrollView.isTracking && !scrollView.isDragging && !scrollView.isDecelerating {
            scrollStop()
        }
    }
    //滑动停止
    func scrollStop() {
        print("滑动停止")
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容