第一種方式: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