作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力使我的 TableView 每个单元格只接受一个复选框。
我用过this solution为复选标记保存用户默认值,效果很好,但它允许多项选择。
我在 Stack overflow 上尝试了很多解决方案,但由于格式有点不同,我无法使用这些解决方案。
我尝试过但没有用的东西:
尝试在 didDeselectRowAt
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
tableView.cellForRow(at: indexPath)?.accessoryType = .none
}
尝试将 TableView 设置为不允许在 viewDidNotLoad
上进行多项选择
override func viewDidLoad()
{
tableViewName.allowsMultipleSelection = false
}
根据我链接的解决方案,我将如何只允许一个选择?
最佳答案
在您链接的解决方案中,“didSelect”函数中有这段代码
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
if selectedRows.contains(indexPath.row) {
self.selectedRows = selectedRows.filter{$0 != indexPath.row}
}else{
self.selectedRows.append(indexPath.row)
}
UserDefaults.standard.set(selectedRows, forKey: "selectedRows")
}
如果您只想选中一个复选框,那么您只需要将一个实体保存在您的 selectedRows
对象中。将上面的代码改成:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
self.selectedRows = [indexPath.row]
UserDefaults.standard.set(selectedRows, forKey: "selectedRows")
}
然后每次选中一个复选框时,它会清除所有其他选中的复选框并仅选中您刚刚单击的复选框。
关于ios - Swift - 只允许在 UITableViewCell 中选中一个复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59325676/
我是一名优秀的程序员,十分优秀!