Ios cellForRowAtIndexPath:返回零/应用程序崩溃
我的应用程序有一个带有动态单元格的表格视图。这些单元格是自定义Ios cellForRowAtIndexPath:返回零/应用程序崩溃,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我的应用程序有一个带有动态单元格的表格视图。这些单元格是自定义UITableViewCell类的实例。填充表工作正常。在应用程序中的某个时刻,我需要确定屏幕上显示的是哪个单元格。我使用此函数确定在scrollViewDidScroll方法中查看的单元格。单元格高度很大,因此我提出了一个方程式,以确定单元格的索引,如下所示: int index = (((int)scrollView.contentOffset.y)+250)/566; NSLog(@"%@", [_tableView cell
UITableViewCell
类的实例。填充表工作正常。在应用程序中的某个时刻,我需要确定屏幕上显示的是哪个单元格。我使用此函数确定在scrollViewDidScroll
方法中查看的单元格。单元格高度很大,因此我提出了一个方程式,以确定单元格的索引,如下所示:
int index = (((int)scrollView.contentOffset.y)+250)/566;
NSLog(@"%@", [_tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:1]]);
当我运行应用程序时,它返回null!我在堆栈溢出上搜索了这样一个问题,但找不到答案。我怎样才能归还手机 作为一般参考,我认为读取scrollview的contentOffset
值以获取索引路径是非常不安全的UITableView
具有方便的方法InExpathOfRowatPoint:
,可用于该方法。因此,要获取索引路径,可以使用
CGPoint point = .... // Whatever your point is
NSIndexPath *indexPath = [_tableView indexPathForRowAtPoint:point];
您还可以始终使用\u tableView.visibleCells
获取包含当前可见单元格的数组
这两种方法都安全得多,可以为您节省麻烦和错误您到底希望得到什么样的输出?是正在查看的单元格的索引还是其他内容?我希望在某个索引路径(因此上面的NSLog)返回单元格。为什么不使用indexPathOfRowAtPoint
来确定特定点的索引路径,而不是读取scrollview的contentOffset
?这似乎有点不安全。您也可以通过调用\u tableview.visibleCells
直接获取可见单元格,只是想知道第1节的内容。你们有多少部分?也。。。如果不针对第0节执行相同操作,会发生什么情况?但是再说一次,@spassas建议的方法更安全。