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("滑动停止")
    }

你可能感兴趣的:(UIScrollView(UITableView、UICollectionView)如何监控滑动停止)