是否有可能获得tableview滚动方向并获得最底层单元格的索引路径?

时间:2017-07-02 09:57:36

标签: ios objective-c swift

嗨是否可以获得tableview滚动方向?滚动是向上滚动还是向下滚动?因为我需要得到最底层单元格的indexpath.row并将其存储到变量中。

如果没有,那么请给我任何建议我该怎么办?

5 个答案:

答案 0 :(得分:1)

是的,您可以确认协议UITableViewDelegate并实现-scrollViewDidScroll方法。只要用户滚动tableView,就会调用此方法。

您还可以检查scrollView的contentOffset并将其与最后一个进行比较。

@property (assign, nonatomic) CGFlaot lastContentOffset

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (scrollView.contentOffset.y > self.lastContentOffset.y) {
        // Scroll down direction 
    } else {
        // Scroll to up
    }
    self.lastContentOffset = currentOffset;
}

不要忘记设置tableViewDelegate

self.tableView.delegate = self;

答案 1 :(得分:1)

如果你想知道的是scrollView正在向上或向下移动,你可以使用这个

func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
    let translation = scrollView.panGestureRecognizer.translation(in: scrollView.superview!)
    if translation.y > 0 {
        print("scrolling down")
    } else {
        print("scrolling up")
    }
}

请务必在视图控制器中设置scrollView.delegate = self

答案 2 :(得分:0)

让您的课成为tableview的代表,然后覆盖scrollViewDidScroll

您必须自己跟踪上一个滚动位置,但是您可以通过查询scrollview的内容偏移来实现:Get the current UIScrollView scroll values on the iPhone?

答案 3 :(得分:0)

是的,有可能!由于<div class="text-mid"> <div id="left"></div> <span>TEXT AREA</span> <div id="right"></div> </div>继承自tableView,您可以使用scrollView

  • 添加UIScrollViewDelegate
  • 现在实现任何这些委托函数UIScrollViewDelegatescrollViewShouldScrollToTop。现在,您可以通过比较scrollViewDidScroll的{​​{1}}
  • 来跟踪tableView的移动情况

代表功能的示例实现:

tableView

答案 4 :(得分:0)

简单如下。

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

    if (velocity.y > 0){
        NSLog(@"scrolling up");
    }
    if (velocity.y < 0){
        NSLog(@"scrolling down");
    }
}