当前位置:  开发笔记 > Android > 正文

tableView:indexPathForCell返回nil

如何解决《tableView:indexPathForCell返回nil》经验,为你挑选了2个好方法。

我正在使用该方法tableView:indexPathForCell来实现自定义委托,该委托可以UITableViewCell根据其UIWebView内部的框架大小动态调整大小.问题是当我试图找出特定单元格的indexPath是什么时tableView:indexPathForCell返回nil:

- (void)trialSummaryTableViewCell:(TrialSummaryTableViewCell *)cell shouldAssignHeight:(CGFloat)newHeight {
    NSIndexPath *indexPath = [tableV indexPathForCell:cell];
    NSLog(@"tableV: %@\ncell: %@\nindexPath: %@", tableV, cell, indexPath); //<-- 
    // ...
}

这里,tableV不返回nil,单元格不返回nil,但indexPath返回nil.

我究竟做错了什么?

编辑:我-(void)trialSummaryTableViewCell从该tableView:cellForRowAtIndexPath:方法调用



1> Jorge Perez..:

可能是此时细胞不可见.tableView:indexPathForCell在这种情况下返回nil.我使用indexPathForRowAtPoint解决了这个问题,即使单元格不可见,此方法也能正常工作.代码:

UITableViewCell *cell = textField.superview.superview;
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:cell.center];


好答案!:)只是一个提示:`textField.superview.superview`是非常糟糕的设计,尽量避免这种情况.

2> Nandakumar R..:

如果单元格不可见,[tableV indexPathForCell:cell]返回nil.

此外,如果从"cellForRowAtIndexPath"方法调用"trialSummaryTableViewCell",您也可以轻松地将indexPath传递给"trialSummaryTableViewCell"方法.


但它不会在ios <4.3上返回nil
推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有