iphone - 滚动后检测 UITableView 中的当前顶部单元格

一个简单的问题,但我似乎没有正确的术语来搜索 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/

相关文章:

iphone - 将长格式的 NSString 拆分为多行

iphone - iOS 7 表格 View 无法自动调整内容插入

ios - 将 NSInteger 转换为 NSIndexpath

objective-c - 恢复 iOS7 之前的 UINavigationController p

iphone - NSLocale 和国家名称

ios - 为什么我的 UIButton 的 "touch up inside"事件没有被调用?

objective-c - UIAlertController 延迟显示

c - Objective C boolean 数组

objective-c - 通过指针运算与 C 中的下标访问数组值

iphone - 将 HEX NSString 转换为 NSData