如何实时获取UITableView的滚动位置

How to get the scroll position of a UITableView in real time

我需要实时获取 table 视图的滚动位置。 我目前正在做的是:

func animationOffset() {
    let offset = tableView.contentOffset.y
}

此函数连接到定时器

timer = NSTimer.scheduledTimerWithTimeInterval(0.2, target: self, selector: #selector(TimelineViewController.animationOffset), userInfo: nil, repeats: true)

如果用户将手指从屏幕上移开,此代码可以正常工作,但如果他们不这样做并继续滚动,偏移将永远不会更新,我的应用程序将无法 运行 正确。

你可以实施

func scrollViewDidScroll(scrollView: UIScrollView)
UITableViewDelegateUITableViewDelegate 是在 tableview 的滚动位置发生变化时调用的,您可以使用 tableView.contentOffset.y 获取滚动位置。

小问题 - 在 Swift 3 中是

func scrollViewDidScroll(_ scrollView: UIScrollView)

并且不会触发以下内容:

func scrollViewDidScroll(scrollView: UIScrollView)

可以获得First and Last INDEX of visible UITableView 使用以下函数的项目

This function also update itself every time when you scroll (Real time)

func scrollViewDidScroll(_ scrollView: UIScrollView){
    //First Visible Item
    print(tableView.indexPathsForVisibleRows?.first)

    //Last visible item
    print(tableView.indexPathsForVisibleRows?.last)
}