如何实时获取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)
UITableViewDelegate
的 UITableViewDelegate
是在 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)
}
我需要实时获取 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)
UITableViewDelegate
的 UITableViewDelegate
是在 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)
}