从uiTableViewCell更改选定单元格的检查状态

时间:2019-12-06 08:44:17

标签: swift uitableview

我是新手,尝试更改选中的tableviewcell已选中。 我试着;用户选择城市和地区,然后单击“保存”按钮,应用程序会将信息发送到服务器。没问题,所以在那里。当用户想更新城市或地区时,我应该先检查地区,然后用户才能看到他/她选择了什么。我正在使用json从服务器获取第一信息,并将其附加到数组。当用户单击更新按钮时,我可以在调试模式下看到选定信息的前面,但是表视图单元格不会被选中。对不起,我的英语不好。

首次选择我要做什么:

in viewDidLoad()
        self.tableViewDistrict.isEditing = true
        self.tableViewDistrict.allowsMultipleSelection = true
        self.tableViewDistrict.allowsMultipleSelectionDuringEditing = true

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        self.selectDeselectCell(tableView: tableView, indexPath: indexPath)
    }

extension ViewController{
    func selectDeselectCell(tableView: UITableView, indexPath: IndexPath){
        self.selectedDistId.removeAll()
        if let array = tableView.indexPathsForSelectedRows{
            for index in array{
                selectedDistId.append(districtArray[index.row].id!)
            }        
        }
    }
}

1 个答案:

答案 0 :(得分:0)

假设您已将所有先前选择的数据存储在

之类的数组中
var alreadySelectedDistricts : [String] = []

因此,在您的cellForRowAt方法中,您可以像

一样进行检查
for district in alreadySelectedDistricts { 
    if cell.districtLabel.text.contains(district) { 
        cell.accessoryType = .checkmark
    } else { 
        cell.accessoryType = .none
    }
}