动态判断UIScrollview滑动方向

UIScrollview滑动的状态可以通过- (void)scrollViewDidScroll:(UIScrollView *)scrollView; 这个代理来实时获取UIScrollview任何时候的偏移量,但是这个方法并不能很好的获取UIScrollview滑动的方向(向上滑动或者向下滑动),不过也可以用一个全局变量来记录下每次滑动的偏移量,然后比较值的大小判断。但是通过监听UIScrollview值的变化可以很轻松的判断滑动方向。 1、首先注册监听self.tableView 值的变化 [self.tableView addObserver:self forKeyPath:NSStringFromSelector(@selector(contentOffset)) options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:&HHHorizontalPagingViewScrollContext];

2、实现监听(比较新旧值的大小判断滑动方向)

pragma mark - Observer

  • (void)observeValueForKeyPath:(NSString )keyPath ofObject:(__unused id)object change:(NSDictionary )change context:(void *)context {

    CGFloat oldOffsetY          = [change[NSKeyValueChangeOldKey] CGPointValue].y;
    CGFloat newOffsetY          = [change[NSKeyValueChangeNewKey] CGPointValue].y;
    CGFloat deltaY              = newOffsetY - oldOffsetY;
    
    if(deltaY >= 0) {  //向上滚动
      }else {  //向下滚动
    
        }

    }

猜你喜欢

转载自blog.csdn.net/tangsanmei33/article/details/50972506