如何知道SWIFT单元格的indexPath

时间:2017-07-24 09:57:00

标签: swift uibutton tableview cell

我有自定义tableview。它包含button。问题是如何知道哪个按钮被点击?从哪indexPath.row。我尝试在didSelectRowAt中执行此操作但是,我没有选择任何单元格,我只是按button。我在SWIFT中需要它

2 个答案:

答案 0 :(得分:1)

下面的代码将为您提供Button标签,并且还知道点击了哪个按钮。在cellForRowAtIndexPath UITableView DataSource Delegate Method中使用此代码。

    cell.btn.tag = indexPath.row
    cell.btn.addTarget(self, action: #selector(btnTapped(_:)), for: .touchUpInside)

    func btnTapped(_ sender : UIButton) {
       print(sender.tag)
    }

答案 1 :(得分:0)

UIButton * btn = /* your button */;
UITableViewCell * cellContainingBtn = (UITableViewCell*)[btn superview];
UITableView * tbl = (UITableView *)[cellContainingBtn superview];
NSIndexPath * cellIndexPath = [tbl indexPathForCell:cellContainingBtn];
NSInteger index = [cellIndexPath row];

在这里回答: Get row index of custom cell in UITableview

作为一种简单的替代方法,您可以将单元格的indexPath.row分配给按钮的accessibilityLabel或accessibilityHint等。