这是WillDisplayRow函数的代码:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let monetaryCell = tableView.cellForRow(at: [1,0])
//configure you cell here.
if AppState.sharedInstance.filterPaymentMonetaryIsOn {
monetaryCell?.accessoryType = .checkmark
return monetaryCell!
} else {
monetaryCell?.accessoryType = .none
return monetaryCell!
}
}
在我的DidSelectRow中:
override func tableView(_ tableView: UITableView,
didSelectRowAt indexPath: IndexPath) {
let monetaryCell = tableView.cellForRow(at: [1,0])
tableView.deselectRow(at: indexPath as IndexPath, animated: true)
if indexPath == [0,0] {
print(indexPath)
} else if indexPath == [1,0] {
if AppState.sharedInstance.filterPaymentMonetaryIsOn == true {
monetaryCell!.accessoryType = .none
AppState.sharedInstance.filterPaymentMonetaryIsOn = false
} else {
monetaryCell?.accessoryType = .checkmark
AppState.sharedInstance.filterPaymentMonetaryIsOn = true
}
有人可以帮我解释为什么这不起作用吗?此外,我有更多的单元格,当选择时,每个单元格具有与上面相同的属性。我正在寻找的是当我重新加载视图或关闭并重新打开视图时显示的复选标记。我希望这是有道理的。我很抱歉,如果这是重复,我找了几个小时,但找不到类似的情况。
提前谢谢。
Denis Angell
答案 0 :(得分:0)
将您的复选标记显示功能从cellForRowAtIndexPath
方法移至willDisplayCell
UITableViewDelegate
方法。 willDisplayCell
方法以这样一种方式工作,即每当要在屏幕willDisplayCell
上出现的单元格时,方法调用和所需的功能都会按预期执行。