选中并取消选中相同的UITableViewCell

我需要取消选中我的tableView中的单元格。 就像一个checkbox,一旦我按下一个单元格它保持选中,如果我再次按下同一个单元格,它保持未选中状态。 可能吗?

我发现的一切是取消select细胞的方法

[table deselectRowAtIndexPath:NSIndexPath animated:YES]; 

但没有用处

upd:我不需要检查多个单元格,我需要取消选中单元格,如果点击选中的单元格,并且如果我点击其他(未选中的)单元格,select应该将状态更改为未选中状态(单元格中它已经默认工作)

在你的数据源加载的地方做这个

 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]; } 

要select/取消select做这个你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]]; } 

最简单的方法,但它不是最好的:在didSelectRow,setingTheAccesoryType之前,你只需要调用:

 [tableView reloadData]; 

这将取消select所有行的所有行,然后检查currentCell,

在cellForRow中,将单元格的accesoryType设置为none。

 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 } 
  1. 在你的didSelectRowAtIndexPath中使用以下内容

     // 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")) }