在代理UIScrollViewDelegate中:
//手指滑動開始調(diào)用
scrollViewWillBeginDragging(_ scrollView: UIScrollView)
//手指離開屏幕調(diào)用
scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool)
//快速滑動結(jié)束調(diào)用
scrollViewDidEndDecelerating(_ scrollView: UIScrollView)
這樣就會有一個沖突,無法監(jiān)控滑動什么時候停止(包括手指離開屏幕和快速滑動結(jié)束的時機(jī))。
方法:
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("滑動停止")
}