第一种方式:spa
float lastContentOffset; - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { lastContentOffset = scrollView.contentOffset.y; } - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView { if (lastContentOffset < scrollView.contentOffset.y){ NSLog(@"向上滚动"); }else{ NSLog(@"向下滚动");} }
这种方式基本上能够知足需求,可是将scrollView滑到顶部或底部后连续拖拽拉动时会计算不许确code
第二种方式:blog
- (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) { //中止拖拽 } }
通过检验这种方式不会出现误差ci
by:初光夫get