判断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:初光夫

posted @ 2019-05-30 19:53  WidgetBox  阅读(4460)  评论(0编辑  收藏  举报