静态单元格中的复选框

时间:2017-04-10 12:14:07

标签: ios swift uitableview checkbox uiswitch

我是Swift的新手,我开始在表中学习复选框,但我的表工作正常  我使用静态单元格:

enter image description here

我的代码:

 var flagCell : Bool = false

override func viewDidLoad() {
    super.viewDidLoad()

    tableView.separatorInset = .zero
    tableView.layoutMargins = .zero

    let nav = self.navigationController?.navigationBar
    nav?.tintColor = UIColor(red: 16.0, green: 18.0, blue: 34.0, alpha: 1.0)
    nav?.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white]
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    if let cell = tableView.cellForRow(at: indexPath) {
        tableView.deselectRow(at: indexPath, animated: true)

        if flagCell  == false{
            cell.accessoryType = .checkmark
            flagCell = true
        }else {
            cell.accessoryType = .none
            flagCell = false
        }
    }
}
马克穿上了时间。

  

怎么解决?

我也想用UIS进行操作,所有Cell上都有复选标记

  

我该如何实施?

enter image description here

1 个答案:

答案 0 :(得分:0)

将此代码添加到cellForRowAtIndexPath

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cellID")
    if flagCell  == false {
      cell.accessoryType = .checkmark
    } else {
      cell.accessoryType = .none
    }
  }

并在录制后重新加载表格

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
   flagCell = !flagCell
   tableView.reloadData()
}

或者您可以使用其他方法进行单元格更新:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
       flagCell = !flagCell
       tableView.reloadRows(at: [indexPath], with: .automatic)
    }