笔记:scrollview开始拖动滑动有触发一系列事件,滑动结束触发一系列事件。
scrollview拖动的时候,有两种情况,1、有加速的滑动,就是在手指离开屏幕的时候scrollview还在继续滑动;2、手指离开页面就停止滑动了。
/// 是否有速度
var rate : Bool = false
var scrollView : UIScrollView!
//scrollview代理
//手指将要拖动
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
print("开始拖动滑动")
//触发一些列开始事件,动画
}
//手指将要离开拖动
func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
//velocity.y表示在将要离开拖动的时候的方向(-,+),速率;y==0就是没有速率的拖动
if velocity.y > 0 || velocity.y < 0 {
self.rate = true
}else{
self.rate = false
}
}
//有速度的停止滑动,就是手指离开屏幕,scrollview还在继续滑动的情况,最终停止滑动
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
if self.rate == true {
print("B滑动停止")
}
//手指离开屏幕scrollview就停止滑动了
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
//decelerate 表示在手指离开拖动的时候是否有速度
if self.rate == false && decelerate == false {
print("A停止滑动了")
}
}
欢迎同仁斧正!虚心接受!
网友评论