Swift - 只允许在 UITableViewCell 中选中一个复选框

Swift - Allow ONLY one checkbox selected inside a UITableViewCell

我正在努力使我的 TableView 每个单元格只接受一个复选框。

我已经使用 this solution 为复选标记保存用户默认值,效果很好,但它允许多项选择。

我已经尝试了很多关于 Stack overflow 的解决方案,但由于格式有点不同,我无法使用这些解决方案。

我尝试过但无效的方法:

尝试在 didDeselectRowAt

处将附件类型设置为 none
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
   tableView.cellForRow(at: indexPath)?.accessoryType = .none 
}

尝试将 table 视图设置为不允许在 viewDidNotLoad

上进行多项选择
override func viewDidLoad()
{
    tableViewName.allowsMultipleSelection = false
}

根据我链接的解决方案,我将如何只允许单选?

在您链接的解决方案中,'didSelect' 函数中有这段代码

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
{
    if selectedRows.contains(indexPath.row) {
        self.selectedRows = selectedRows.filter{[=10=] != indexPath.row}
    }else{
        self.selectedRows.append(indexPath.row)
    }
    UserDefaults.standard.set(selectedRows, forKey: "selectedRows")
}

如果您只想 select 编辑一个复选框,那么您只希望在 selectedRows 对象中保存一个实体。将上面的代码改为:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
{
    self.selectedRows = [indexPath.row]

    UserDefaults.standard.set(selectedRows, forKey: "selectedRows")
}

然后,每次 select 选中一个复选框时,它会清除所有其他 select 选中的复选框,并且 select 只会清除您刚刚单击的复选框。