如何识别iOS中的表格行?

时间:2016-07-18 15:22:28

标签: ios swift uitableview

我创建了一个原型单元格,我从数据库中获取数据以加载到表格中的单元格中。 每个单元格都有一个标签和3个按钮,如下所示:

enter image description here

如果我点击按钮例如"符合标准",如何识别我按下按钮的哪一行?

例如,当我按下"符合标准"在给定行的按钮我想将该行的背景颜色更改为红色。我该怎么办?

我有一个CustomCell.swift类,我配置原型单元格和TableView.swift类,我配置表格。

1 个答案:

答案 0 :(得分:0)

尝试控制将按钮拖动到CustomCell.swift类并键入名称并在弹出菜单上选择“操作”。然后,在生成的方法中,您可以调用self.backgroundColor = UIColor.redColor()或执行您喜欢的任何其他操作。

编辑:

以下是我认为你应该做的改变高度:

在您的单元格类中创建一个名为“expanded”的布尔值。然后,进入表视图类并实现heightForRowAtIndexPath方法。在该方法中,检索单元格并检查它是否已展开,如果是,则返回更大的高度。现在,要重新加载,您需要在每个单元格中存储对表格视图的引用,如下所示:Reference from UITableViewCell to parent UITableView?

在你已经制作的点击方法中,背景设置为红色,你需要调用:

tableView.beginUpdates()
tableView.endUpdates()

其中tableview是您已存储的弱引用。此外,在该方法中,您当然需要添加self.expanded = true

编辑2:

你知道吗,也许这样做更容易:

weak var _tableView: UITableView!

...

func tableView() -> UITableView! {
    if _tableView != nil {
        return _tableView
    }

    var view = self.superview
    while view != nil && !(view?.isKindOfClass(UITableView))! {
        view = view?.superview
    }

    self._tableView = view as! UITableView
    return _tableView
}