如果单元附件类型设置为“复选标记”,是否会自动选择它?

时间:2018-07-15 01:19:15

标签: swift xcode swift4

我有一个表,用于将索引值存储在数组中。

在选择行时,它们将附加到数组

当我单击上一个按钮并希望用这些索引填充表并自动检查它们是否在数组中时,就会出现问题。

尽管我的问题是:我是否需要在cellForRowAt上运行一个循环,并检查它们是否在数组中并分配选中标记。 (将其计为“已选择”,还是我需要循环并调用tableview.selectRow,然后分配选中标记?

到目前为止,我已经有了这个,但是遇到了问题。

  func cellForRowAt: 

       if let question = allQuestions[currentQuestion - 1].userAnswer {
                if question.contains([indexPath.row]) {
                   // print("contains row")
                    //tableView.selectRow(at: indexPath, animated: true, scrollPosition: .none)
                    cell.accessoryType = .checkmark
                } else {
                   // print("does not contain")
                    cell.selectionStyle = .none
                }
            }

1 个答案:

答案 0 :(得分:1)

cell.accessoryType = .checkmark

不同
tableView.selectRow(at: indexPath, animated: false, scrollPosition: .none)

调用tableView.selectRow将在显示单元格时设置isSelected属性。然后,您的单元格子类可以使用该属性来设置accessoryType,而不必在cellForRow中进行设置。

override var isSelected: Bool {
    didSet {
        accessoryType = isSelected ? .checkmark : .none
    }
}

然后在viewDidLoad中,告诉UiTableView应该选择哪几行。