对于设置屏幕,我有一个非常简单的5行表设置。每当单击第一个单元格时,它将突出显示但不会调用didselectrow。如果单击另一行,则该行将调用did选择功能,但返回错误的行。然后,我可以单击第一行,它将返回,但也有不正确的行。我在项目中建立了几个与此类似的表,但它们没有这种行为。单元格正确突出显示,所以我认为我没有布局/视图问题。我没有任何约束警告,当我使用viewdebugger时,没有遇到覆盖表格单元格的任何视图。感谢所有帮助!
let settingsArray:[String] = ["Notifications","Account","bar","Help","Privacy Policy"]
extension SettingsViewController: UITableViewDataSource,UITableViewDelegate {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return settingsArray.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
print("\(indexPath.row) setting \(settingsArray[indexPath.row])")
if settingsArray[indexPath.row] != "bar" {
let cell = tableView.dequeueReusableCell(withIdentifier: "settingOption") as! SettingsOptionCell
cell.configure(setting: settingsArray[indexPath.row])
self.settingsTable.rowHeight = 65
cell.isUserInteractionEnabled = true
return cell
} else {
let cell = tableView.dequeueReusableCell(withIdentifier: "settingBar")
self.settingsTable.rowHeight = 70
cell?.isUserInteractionEnabled = false
return cell!
}
}
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
print("clicked \(indexPath.row)")
}
}
答案 0 :(得分:2)
替换
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
使用
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {