我有一个表,用于将索引值存储在数组中。
在选择行时,它们将附加到数组
当我单击上一个按钮并希望用这些索引填充表并自动检查它们是否在数组中时,就会出现问题。
尽管我的问题是:我是否需要在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
}
}
答案 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
应该选择哪几行。