获取单元格的indexPath.row

时间:2016-08-14 09:45:33

标签: ios arrays swift uitableview

当点击单元格中的按钮时,如何获取特定单元格的indexPath.row是我的代码

if let indexPath = self.tableView?.indexPathForSelectedRow {
    print("\(indexPath.row)")

}

2 个答案:

答案 0 :(得分:3)

从按钮(发件人)操作中获取单元格

 var cell: UITableViewCell = sender.superview.superview as UITableViewCell

获取索引路径

 tableView.indexPathForCell(cell)

答案 1 :(得分:1)

当您在单元格中点击一个按钮时,您需要遍历该按钮的超级视图链以获取对UITableViewCell的引用。在那里,您可以使用tableView.indexPathForCell(cell: UITableViewCell)函数向tableView请求indexPath。

这样的事情:

var optionalCell: UITableViewCell? = nil
var view: UIView = yourButton

while view.superView != nil {
  view = view.superView
  if view is UITableViewCell {
    optionalCell = view
    break
  }
}

if let cell = optionalCell {
  var indexPath = tableView.indexPathOfCell(cell)
} else {
  return
}

我不知道你的代码看起来如何,但它应该是这样的。当然,你可以随时破解它,并且确切地知道单元格中有多少超级视图(UITableViewCell)与你的按钮进行比较,但无论按钮在单元格视图层次结构中有多深,这都可以正常工作。