【发布时间】:2017-09-25 06:01:12
【问题描述】:
我已经在表格视图中添加了数据,并且当用户选择第一个选项(全选)时,我已经手动将“全选”选项添加到列表的第一个位置,然后在选择相同时应该选择和取消选择列表中的所有项目.我已经尝试了下面的代码,但它不起作用所以任何人都可以帮我解决这个问题
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let cell = ObjTableview.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! SelectUserCell
for i in 0 ..< self.getStudentName.count {
cell.btnCheckbox.setImage(UIImage(named: "selectedItem"), for: .normal)
print (i) //i will increment up one with each iteration of the for loop
}
}
var unchecked = true
@IBAction func btnCheckBoxClick(_ sender: Any) {
if unchecked == true {
//(sender as AnyObject).setImage(UIImage(named: "selectedItem"), for: .normal)
cell?.btnCheckbox.setImage(UIImage(named: "selectedItem"), for: .normal)
//unchecked = false
let cello = ObjTableview.cellForRow(at: indexPath!)
print(cello!)
ObjTableview.reloadData()
}else
{
//(sender as AnyObject).setImage(UIImage(named: "unSelectedItem"), for: .normal)
cell?.btnCheckbox.setImage(UIImage(named: "unSelectedItem"), for: .normal)
// unchecked = true
}
}
【问题讨论】:
-
在行的单元格中,您只设置
UIImage(named: "selectedItem",为什么 for loop ?仅应用了数组的最后一个值,我可以看到的其他问题是btnCheckBoxClick您正在更新unchecked值 -
在 Array 上创建逻辑。一旦将数据加载到数组中,将全零,当您选择任何单元格时,将该索引值更改为 1。当您在数组中全选时,全为 1。当您取消全选时,全零在数组中。
-
永远不会将
cellForRow...之外的表格视图单元格出列。这是一个致命的错误。
标签: ios uitableview swift3