美文网首页
[_tableView indexPathForCell:cel

[_tableView indexPathForCell:cel

作者: 大风先生bigWind | 来源:发表于2018-06-05 16:02 被阅读0次

    概述

    在开发中, 经常会在cell中添加uibotton, 而点击uibotton的时候我们有可能需要获取到当前的cell的indexpath, 常用的方法是下面的方法:

    UITableViewCell *cell = (UITableViewCell *)[btn superview];
    [_tableView indexPathForCell:cell]
    

    但有时候我们发现这个方法返回nil, 而cell并不返回nil, 这是什么原因呢?

    分析和解决

    原因就是当对应的cell是不可见的时候[_tableView indexPathForCell:cell]会返回nil;
    解决的方法如下, 用下面的方法来代替, 可完美解决:

        UITableViewCell *cell = (UITableViewCell *)[btn superview];    
    //    NSLog(@"按钮cell:%@", [_tableView indexPathForCell:cell]);
        NSLog(@"按钮cell.center:%@", [_tableView indexPathForRowAtPoint:cell.center]);
    

    下面附上demo的打印结果


    image.png

    end

    相关文章

      网友评论

          本文标题:[_tableView indexPathForCell:cel

          本文链接:https://www.haomeiwen.com/subject/zixmsftx.html