判断scrollView的滑动方向
第一种方式:
float lastContentOffset; - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { lastContentOffset = scrollView.contentOffset.y; } - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView { if (lastContentOffset < scrollView.contentOffset.y){ NSLog(@"向上滚动"); }else{ NSLog(@"向下滚动");} }
这种方式基本上可以满足需求,但是将scrollView滑到顶部或底部后连续拖拽拉动时会计算不准确
第二种方式:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGFloat yoffset = scrollView.contentOffset.y; CGPoint vel = [scrollView.panGestureRecognizer velocityInView:scrollView]; if (vel.y < -5) { //向上拖动 }else if (vel.y > 5) { //向下拖动 }else if (vel.y == 0) { //停止拖拽 } }
经过检验这种方式不会出现偏差
by:初光夫