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