繁体   English   中英

cellForRowAtIndexPath:返回nil /应用程序崩溃

[英]cellForRowAtIndexPath: returns nil/ app crashes

我的应用程序具有带动态单元格的表格视图。 单元格是自定义UITableViewCell类的实例。 填充表工作正常。 在应用程序的某个时刻,我需要确定屏幕上正在显示哪个单元格。 我正在使用此功能来确定在scrollViewDidScroll方法中正在查看的单元格。 单元格的高度很大,因此我想出了一个方程式来确定所显示的单元格的index ,如下所示:

int index = (((int)scrollView.contentOffset.y)+250)/566;

NSLog(@"%@", [_tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:1]]);

当我运行该应用程序时,它返回null! 我在Stack Overflow上搜索了这样的问题,但找不到答案。 如何退回电池?

作为一般参考,我认为读取滚动视图的contentOffset值以获得索引路径是非常不安全的。 UITableView具有便利的方法indexPathOfRowAtPoint:可以用于此目的。 因此,要获取索引路径,可以使用

CGPoint point = .... // Whatever your point is
NSIndexPath *indexPath = [_tableView indexPathForRowAtPoint:point];

另外,您始终可以使用_tableView.visibleCells来获取包含当前可见单元格的数组。

这两种方式都更安全,可以节省您的麻烦和错误

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM