4

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

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

这个函数连接到一个定时器

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

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

4

3 回答 3

14

您可以实施

func scrollViewDidScroll(scrollView: UIScrollView)

当 tableview的UITableViewDelegate滚动位置发生变化时调用其中的 ,您可以使用它tableView.contentOffset.y来获取滚动位置。

于 2016-04-30T23:35:55.313 回答
5

小问题 - 在 Swift 3 中

func scrollViewDidScroll(_ scrollView: UIScrollView)

并且不会触发以下内容:

func scrollViewDidScroll(scrollView: UIScrollView)
于 2016-10-12T16:22:18.110 回答
1

您可以使用下面的函数获取可见UITableView项的第一个最后一个 INDEX

每次滚动时,此功能也会自行更新(实时)

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

    //Last visible item
    print(tableView.indexPathsForVisibleRows?.last)
}
于 2019-11-11T09:42:54.213 回答