一个简单的问题,但我似乎没有合适的术语来搜索它.

我有一个没有分区的UITableView,用户可以在这个tableview中上下滚动一长串数据(行).

Question:如何在用户滚动后检测最顶端的单元格行数.

推荐答案

你可以try 使用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]

Objective-c相关问答推荐

如何检测 iPhone 5c 的 colored颜色 ?

Xcode 的任何 ReSharper 类似功能?

如何打印 NSMutableURLRequest?

具有动态高度的子视图的自动布局 UIScrollView

如何在旋转时定义 CollectionView 的大小

将 Objective-C 指针类型NSString *转换为 C 指针类型CFStringRef(又名const struct __CFString *)需要桥接转换

块引用作为Objective-C中的实例变量

如果用户禁用了应用程序的推送,是否可以进行静默远程通知?

NSUserDefaults 的限制是什么?

.m 文件中的空@interface 声明是做什么用的?

通过 ObjC 类别覆盖方法并调用默认实现?

如何在 iPhone 上显示来自 API 的 HTML 文本?

如何确定 UICollectionView flowLayout 中单元格之间的间距

iOS 5:对 UIAppearance 感到好奇

主队列上的 dispatch_sync 与 dispatch_async

在我滚动之前,数据不会加载到 UITableView 中

iPhone 正确使用 Application Delegate

所有异常断点在模拟器上无缘无故停止

哪个是正确的,nil 或 NULL,来标记没有 Objective-C 块?

无法在 iOS7 上将 UITextField 添加到 UIAlertView ...在 iOS 6 中有效