[_tableView indexPathForCell:cell] return nil的解決方法

概述

在開發(fā)中, 經(jīng)常會在cell中添加uibotton, 而點擊uibotton的時候我們有可能需要獲取到當前的cell的indexpath, 常用的方法是下面的方法:

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

但有時候我們發(fā)現(xiàn)這個方法返回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

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容