如何知道UITableView以哪种方式滚动

A f*_*pha 22 iphone uitableview ipad ios

有什么方法可以让我们知道a UITableView是向上滚动还是向下滚动?

cit*_*eer 44

-(void) scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGPoint currentOffset = scrollView.contentOffset;
    if (currentOffset.y > self.lastContentOffset.y)
    {
        // Downward
    }
    else
    {
        // Upward
    }
    self.lastContentOffset = currentOffset;
}
Run Code Online (Sandbox Code Playgroud)

  • 您好,只需在您的滚动委托类中定义一个属性.@property(assign,nonatomic)CGPoint lastContentOffset; (2认同)

Ale*_*lex 29

-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView 
                    withVelocity:(CGPoint)velocity 
             targetContentOffset:(inout CGPoint *)targetContentOffset{

    if (velocity.y > 0){
        NSLog(@"up");
    }
    if (velocity.y < 0){
        NSLog(@"down");
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 13

我们可以这样做吗?

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {

      if ([scrollView.panGestureRecognizer translationInView:scrollView].y > 0) {
        // down
      } else {
        // up
      }

    }
Run Code Online (Sandbox Code Playgroud)

  • 这不是真的,如果你向下滚动让我们说100.0pt和1.0pt向上,你的代码将触发向下的部分(translation.y将是99.0) (2认同)

Ale*_*der 1

您可以跟踪内容偏移量的差异。将旧变量保留在成员/静态变量中并检查当前变量。如果旧值较低,则滚动方向向下,反之亦然。