我的应用程序有一个动态单元格的表格视图。单元格是自定义UITableViewCell
类的实例。填充表格工作正常。在app中的某个时刻,我需要确定屏幕上显示的是哪个单元格。我正在使用此函数来确定正在scrollViewDidScroll
方法中查看的单元格。单元格高度很大,所以我想出了一个方程来确定显示的单元格index
如下:
int index = (((int)scrollView.contentOffset.y)+250)/566;
NSLog(@"%@", [_tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:1]]);
当我运行应用程序时,它返回null!我在Stack Overflow上搜索了这样一个问题,我找不到答案。我该如何归还牢房?
答案 0 :(得分:1)
作为一般参考,我认为读取scrollview的contentOffset
值以获取索引路径是非常不安全的。 UITableView
具有可用于此的便捷方法indexPathOfRowAtPoint:
。因此,要获取索引路径,可以使用
CGPoint point = .... // Whatever your point is
NSIndexPath *indexPath = [_tableView indexPathForRowAtPoint:point];
此外,您始终可以使用_tableView.visibleCells
来获取包含当前可见单元格的数组。
这两种方式都更加安全,可以为您节省麻烦和错误