gpt4 book ai didi

ios - 在 Swift 中禁用 Tableview 中的多行选择

转载 作者:行者123 更新时间:2023-11-30 12:42:17 29 4
gpt4 key购买 nike

我是 Swift 新手,我想在我的表格 View 中禁用多行选择。我尝试实现不同类型的方法,我的最终代码块如下,但不起作用。感谢您的帮助。

override func viewDidLoad() {
super.viewDidLoad()
companyTableView.allowsMultipleSelection = false
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

if let cell = tableView.cellForRow(at: indexPath) {
cell.accessoryType = .checkmark;
}

tableView.deselectRow(at: indexPath, animated: true)
if let cell = tableView.cellForRow(at: indexPath) {
cell.accessoryType = .checkmark
}

tableView.deselectRow(at: indexPath, animated: true)
if let cell = tableView.cellForRow(at: indexPath) {
if selectedCells.contains(indexPath.row) {
selectedCells.remove(indexPath.row)
cell.accessoryType = .none
} else {
selectedCells.insert(indexPath.row)
cell.accessoryType = .checkmark
}
}
}

最佳答案

请尝试此代码:

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

if !selectedCells.contains(indexPath){
selectedCells.add(indexPath)

if let cell = tableView.cellForRow(at: indexPath) {
cell.accessoryType = .checkmark
}
}
}


func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {

if selectedCells.contains(indexPath){
selectedCells.remove(indexPath)

if let cell = tableView.cellForRow(at: indexPath) {
cell.accessoryType = .none
}
}
}

并在cellForRowAt中使用:

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

if selectedCells.contains(indexPath){
cell.accessoryType = .checkmark
}
else{
cell.accessoryType = .none
}

return cell
}

关于ios - 在 Swift 中禁用 Tableview 中的多行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42089206/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com