设置上的Checkmark确实显示使用将显示单元格无法正常工作

时间:2017-03-31 03:56:59

标签: ios swift3 tableview

这是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

1 个答案:

答案 0 :(得分:0)

将您的复选标记显示功能从cellForRowAtIndexPath方法移至willDisplayCell UITableViewDelegate方法。 willDisplayCell方法以这样一种方式工作,即每当要在屏幕willDisplayCell上出现的单元格时,方法调用和所需的功能都会按预期执行。