告诉我们正在点击的tableView的哪一行按钮

时间:2017-12-13 10:36:30

标签: ios swift uitableview

我的tableView中的Hello我向自定义tableViewCell添加了一个刷新按钮

enter image description here

因为我想在按钮点击后重新加载单个单元格,为了做到这一点(环顾网络)我创建了这个功能

 @IBAction func rowReload(_ sender: Any) {

        let index = IndexPath(row: , section: )
        self.tableView.reloadRows(at: [index], with: .none)
    }

但我的问题是这一行let index = IndexPath(row: , section: ),我怎么能告诉我的函数重新加载动作必须发生在按下按钮的行上? (简单来说,我必须写下一个row:section:?)

3 个答案:

答案 0 :(得分:0)

cellForRow方法中为一个按钮指定标签,如下所示:

yourCell.yourButton.tag = indexPath.row

然后在cellForRow方法中为其指定选择器。

yourCell.yourButton.addTarget(self, action: #selector(myClass.rowReload(_:)), forControlEvents: .TouchUpInside)

在您的rowReload方法参数中,sender应该有UIButton类型,您的方法将是:

func rowReload(_ sender: UIButton) {

然后您可以访问其标记,IndexPath将是:

let index = IndexPath(row: sender.tag, section: 0)

答案 1 :(得分:0)

在您的方法中,

> "func tableView(_ tableView: UITableView, cellForRowAt indexPath:
> IndexPath) -> UITableViewCell"

你可以给元素标记号(按钮) 例如

  

cell.button.tag = indexPath

因此,当您点击按钮时,您可以将标记作为其indexPath。

  

@IBAction func rowReload(_ sender:Any){

    let index = sender.tag
    self.tableView.reloadRows(at: [index], with: .none) 
     

}

答案 2 :(得分:0)

如果UITableview中有多个部分,那么我们就不能使用标签来确定索引路径。

g.length