我制作了一个原型单元,并从数据库中获取了要加载到表中单元中的数据。
每个单元都有一个标签和3个按钮,如下所示:
如果单击某个按钮(例如“符合标准”),如何确定在该按钮的哪一行中点击?
例如,当我在给定的行上按下“符合标准”按钮时,我想将该行的背景色更改为红色。我该怎么做?
我有一个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
}