gpt4 book ai didi

ios - 复选框选中和未选中不会保留在我的表格 View 中

转载 作者:行者123 更新时间:2023-11-30 11:05:41 25 4
gpt4 key购买 nike

我的任务我试图在popup View Controller 内显示带有check box按钮的tableView

每当用户单击按钮时,它都会更改检查和取消检查,但当我单击完成按钮时我需要做的事情我必须保留用户已选中,如果单击取消,则应取消选中(这是用户在单击取消之前检查的)。我需要理解并解决这个任务。

Check and Uncheck popup

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

let cell:MyCustomCell = self.tableView.dequeueReusableCell(withIdentifier: cellReuseIdentifier) as! MyCustomCell
cell.myCellLabel.text = self.animals[indexPath.row]

if selectedRows.contains(indexPath)
{
cell.checkBox.setImage(UIImage(named:"check.png"), for: .normal)
}else{
cell.checkBox.setImage(UIImage(named:"uncheck.png"), for: .normal)
}
cell.checkBox.tag = indexPath.row
cell.checkBox.addTarget(self, action: #selector(checkBoxSelection(_:)), for: .touchUpInside)
return cell
}

// method to run when table view cell is tapped
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

guard let cell = tableView.cellForRow(at: indexPath) as? MyCustomCell else {
return
}

if self.selectedRows.contains(indexPath) {
self.selectedRows.remove(at: self.selectedRows.index(of: indexPath)!)
cell.checkBox.setImage(UIImage(named:"uncheck.png"), for: .normal)
} else {
self.selectedRows.append(indexPath)
cell.checkBox.setImage(UIImage(named:"check.png"), for: .normal)
let indexPath = tableView.indexPathForSelectedRow //optional, to get from any UIButton for example
let currentCell = tableView.cellForRow(at: indexPath!) as! MyCustomCell
}
}

@IBAction func cancelPopup(_ sender: Any) {
self.removeAnimate()
}

@IBAction func donePopUp(_ sender: AnyObject) {
self.removeAnimate()
}

最佳答案

您可以考虑使用基本的 taleview 单元并设置 acessoryType 。将复选框和标签全部放在左侧似乎会导致用户体验不佳

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "DefectCell", for: indexPath)

let category = defectSet [indexPath.section]
let item = category.items[indexPath.row]

cell.textLabel?.text = item.name
cell.selectionStyle = .none

let isFound = User.shared.selectedDefect.filter{ $0.id == item.id }.count > 0

if (isFound)
{
cell.accessoryType = .checkmark
}
else
{
cell.accessoryType = .none
}
return cell
}

关于ios - 复选框选中和未选中不会保留在我的表格 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52765747/

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