繁体   English   中英

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

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

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

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)

UITableViewDelegate在 tableview 的滚动位置改变时调用,在那里你可以使用tableView.contentOffset.y来获取滚动位置。

小问题 - 在 Swift 3 中

func scrollViewDidScroll(_ scrollView: UIScrollView)

并且不会触发以下内容:

func scrollViewDidScroll(scrollView: UIScrollView)

您可以使用以下函数获取可见UITableView项的FirstLast INDEX

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM