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

ios - 如何在iOS中识别表格行?-LMLPHP

如果单击某个按钮(例如“符合标准”),如何确定在该按钮的哪一行中点击?

例如,当我在给定的行上按下“符合标准”按钮时,我想将该行的背景色更改为红色。我该怎么做?

我有一个CustomCell.swift类,在其中配置原型单元,还有一个TableView.swift类,在其中配置表。

最佳答案

尝试控制将按钮拖动到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
}

10-07 20:23