一个简单的问题,但我似乎没有正确的术语来搜索 Stackoverflow。
我有一个没有部分的 UITableView,用户可以在这个 tableview 中上下滚动一长串数据(行)。
问题:如何在用户滚动后检测到最顶部的单元格行号。 (例如,如果用户向下滚动 30 个单元格,则滚动后的顶部单元格为 = 30)
最佳答案
您可以尝试使用 UITableView
的 -indexPathsForVisibleRows
或 -indexPathForRowAtPoint
。
例如,假设您想在停止拖动表格时打印最顶部可见单元格的 indexPath。你可以这样做:
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
NSIndexPath *firstVisibleIndexPath = [[self.tableView indexPathsForVisibleRows] objectAtIndex:0];
NSLog(@"first visible cell's section: %i, row: %i", firstVisibleIndexPath.section, firstVisibleIndexPath.row);
}
对于 Swift 3.0
let topVisibleIndexPath:IndexPath = self.tableView.indexPathsForVisibleRows![0]
https://stackoverflow.com/questions/8259475/