我需要在tableView中取消选中单元格。像一个复选框,一旦我按下一个单元格它保持选中,如果我再次按下相同的单元格它保持未选中。有可能吗?
我发现的是取消选择细胞的一些方法
[table deselectRowAtIndexPath:NSIndexPath animated:YES];
但它无用
UPD: 我不需要检查多个单元格,如果点击选定的单元格,我需要取消选中单元格,如果我点击其他(未选中的)单元格,则选择应该将状态更改为未选中(它已经工作了)默认情况下在单元格中)
答案 0 :(得分:0)
加载数据源的位置 这样做
arrSelected = [[NSMutableArray alloc] init];
for (int i = 0; i <arrSong.count; i++) {
[arrSelected addObject:[NSNumber numberWithBool:NO]];
}
在indexpath的单元格中执行此操作
if ([[arrSelected objectAtIndex:indexPath.row] boolValue] == YES) {
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
}
else{
[cell setAccessoryType:UITableViewCellAccessoryNone];
}
选择/取消选择在tableview中执行此操作:didselect
if ([[arrSelected objectAtIndex:indexPath.row] boolValue] == YES) {
[arrSelected replaceObjectAtIndex:indexPath.row withObject:[NSNumber numberWithBool:NO]];
}
else{
[arrSelected replaceObjectAtIndex:indexPath.row withObject:[NSNumber numberWithBool:YES]];
}
答案 1 :(得分:0)
最简单的方法,但它并不是最好的方式: 在didSelectRow中,在setingTheAccesoryType之前,你只需要调用:
[tableView reloadData];
这将取消选择所有行的所有行,然后检查currentCell,
在cellForRow中,将单元格的accesoryType设置为none。
答案 2 :(得分:0)
ios swift
1。默认情况下,所有单元都处于非活动状态,因此将单元格存储在字典
中var indexPathCheckmark = [Int: Bool]()
// set all the values initally false for check mark
for var index = 0 ; index < self.listOfOldApps.count ; index++ {
self.indexPathCheckmark[index] = false
}
// set a check marker for all cell required
let cell = tableView.cellForRowAtIndexPath(indexPath)
if (indexPathCheckmark[indexPath.row] == false) {
indexPathCheckmark[indexPath.row] = true
cell?.accessoryView = UIImageView(image: UIImage(named: "done-active"))
} else {
indexPathCheckmark[indexPath.row] = false
cell?.accessoryView = UIImageView(image: UIImage(named: "done"))
}