我目前有一个TableViewController,它的导航栏带有editButtonItem。当我按下此按钮时,我的tableview正确进入编辑模式,但是当isEditing更改时,我想更改自定义UITableViewCell上的标签。我尝试将以下内容添加到cellForRowAt中:
if editingMode {
cell.timeZoneLabel = ""
} else {
cell.timeZoneLabel = timeZone.city
}
但是当isEditing更改时,似乎没有重新加载tableView。
我的下一个想法是在开始时设置以下变量:
var editingMode = false {
didSet {
tableView.reloadData()
}
}
并将以下内容添加到viewDidLoad()中,以便在isEditing更改时可以重新加载tableView:
editingMode = isEditing
这似乎也不起作用。我曾尝试寻找其他解决方案,但找不到任何遇到类似问题的人。
任何指导将不胜感激!
答案 0 :(得分:0)
在单元格中覆盖didTransition(to
。 rawValue
0代表正常状态,rawValue
1代表showingEditControl
override func didTransition(to state: UITableViewCell.StateMask) {
switch state.rawValue {
case 0: timeZoneLabel = timeZone.city
case 1: timeZoneLabel = ""
default: break
}
}