【问题标题】:How to get the scroll position of a UITableView in real time如何实时获取 UITableView 的滚动位置
【发布时间】:2016-04-30 23:31:59
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: ios swift uitableview uikit contentoffset


    【解决方案1】:

    你可以实现

    func scrollViewDidScroll(scrollView: UIScrollView)
    

    UITableViewDelegate 在 tableview 的滚动位置更改时调用,您可以使用tableView.contentOffset.y 获取滚动位置。

    【讨论】:

    • 小心你在这个方法中所做的事情,因为它在每一帧上都会被调用。
    【解决方案2】:

    小问题 - 在 Swift 3 中是

    func scrollViewDidScroll(_ scrollView: UIScrollView)
    

    并且不会触发以下内容:

    func scrollViewDidScroll(scrollView: UIScrollView)
    

    【讨论】:

      【解决方案3】:

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

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

      func scrollViewDidScroll(_ scrollView: UIScrollView){
          //First Visible Item
          print(tableView.indexPathsForVisibleRows?.first)
      
          //Last visible item
          print(tableView.indexPathsForVisibleRows?.last)
      }
      

      【讨论】:

        猜你喜欢
        • 2011-02-17
        • 1970-01-01
        • 1970-01-01
        • 2014-02-23
        • 2012-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-16
        相关资源
        最近更新 更多