indexPathForCell: 返回nil的解决办法
2018-08-06 本文已影响0人
普罗旺斯的梦
在开发中, 经常会在cell中我们有可能需要获取到当前的cell的indexpath, 常用的方法是下面的方法
UITableViewCell *cell = (UITableViewCell *)[button superview];
[self.tableView indexPathForCell:cell];
或者
UIView *view = button;
while (view != nil && ![view isKindOfClass:[UITableViewCell class]]) {
view = [view superview];
}
UITableViewCell *cell = (UITableViewCell *)view;
[self.tableView indexPathForCell:cell];
但有时候我们这个方法返回nil, 而cell并不返回nil。
原因是当对应的cell是不可见的时候[self.tableView indexPathForCell:cell]会返回nil;
tableView刷新完全创建好当前的cell才能调用indexPathForCell:这个方法
解决的方法如下
NSIndexPath *indexPath = [self indexPathForRowAtPoint:cell.center];