我有一个测验应用程序,该应用程序使用带有包含标签的单元格的表格视图,我使用dequeueReusableCell
重用了该应用程序。现在,当用户单击错误的答案时,标签应该变成红色,并且应该向我显示正确的答案,同时以绿色背景突出显示正确的答案标签。所有这些都应在didSelectRowAt(_:)
中进行。
答案 0 :(得分:0)
您应该在tableView(_:cellForRowAt:)
函数中控制单元格的背景。按下单元格后,如果尚未显示正确的答案,则应重新加载表格视图。
var shouldShowRightAnswer = false
let rightAnswer = 0
var selectedAnswer: Int?
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
[...]
if shouldShowRightAnswer {
if indexPath.row == rightAnswer {
cell.backgroundColor = .green
cell.textLabel.textColor = .white
} else if indexPath.row == selectedAnswer {
cell.backgroundColor = .white
cell.textLabel.textColor = .red
}
} else {
cell.backgroundColor = .white
cell.textLabel.textColor = .black
}
[...]
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if !shouldShowRightAnswer {
selectedAnswer = indexPath.row
shouldShowRightAnswer = true
tableView.reloadData()
}
}