当单击内部单元格时,找出UITableView中哪个部分按钮属于哪个

时间:2015-07-22 00:25:41

标签: ios uitableview cell

我正在尝试更改数组元素的值,具体取决于单击按钮的哪个部分。例如,我说这个数组编号= [0,0,0,0,0]并且我想要更改第一个元素为5.我将5插入第一个部分的单元格中,然后在同一部分中单击完成,数组现在将读取[5,0,0,0,0]。有没有办法知道按钮属于哪个部分?

现在我有两个单独的课程。一个用于自定义单元格,另一个用于tableview。两个都有按钮的出口。单击该按钮时,自定义单元类会将临时全局编号更改为插入的编号。在表类中,我希望按钮操作获取该全局编号,并插入与该按钮所属的部分编号相同的元素。除了我不知道如何找出它属于哪个部分。

任何人都可以帮我解决这个问题吗?我正在写Swift btw。

2 个答案:

答案 0 :(得分:0)

如果您想查找“点击”了哪个单元格,可以使用UITableViewDelegate方法。

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

}

答案 1 :(得分:0)

如果您只需要包含抽头按钮的单元格的索引路径的部分(而不是部分和行),则可以在配置表格视图单元格时使用部分编号(Int)标记按钮:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
    let cell = tableView.dequeueReusableCellWithIdentifier("MyIdentifier", forIndexPath:indexPath) as! MyCustomTableViewCell

    cell.myCustomButton.tag = indexPath.section

    // Remove all existing targets (in case cell is being recycled)
    cell.myCustomButton.removeTarget(nil, action: nil, forControlEvents: .AllEvents)

    // Add target
    cell.myCustomButton.addTarget(self, action:"buttonAction:", forControlEvents:.TouchUpInside)

    return cell
}

func buttonAction(sender:AnyObject)
{
    if let button = sender as UIButton{
        println("Tapped Button in section: \(button.tag)")
    }
}

如果您同时需要 AND 部分,则最好存储整个索引路径。为此,您可以使用具有类型UIButton的属性的自定义NSIndexPath子类,也可以将其存储在表视图单元格中。 但是第二个解决方案有点乱,因为你必须使用superview等从按钮访问表格单元格(然后是索引路径),这依赖于表格单元格的子视图结构体。我不确定您的按钮的父视图是表格单元格本身,还是其内容视图" (我现在有点生疏......)