标题上写着,我认为这几乎是不费脑子但我无法找到答案。 我认为代码描述了我尝试做的事情。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"Selected Row");
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
static NSString *CellIdentifier = @"accountCell";
UITableViewCell *allCells = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
allCells.accessoryType = UITableViewCellAccessoryNone;
cell.accessoryType = UITableViewCellAccessoryCheckmark;
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
所以 - 首先,如果所有单元格都没有复选标记,那么我想在所选单元格上添加一个复选标记。
答案 0 :(得分:1)
每次调用didSelectRowAtIndexPath方法时,都要经过for循环,将所有单元格重置为原始附件类型。然后使用选中的索引路径更新单元格,如下所示:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
for (UITableViewCell *cell in[self.tableView visibleCells]) {
cell.accessoryType = UITableViewCellAccessoryNone;
}
[tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryCheckmark;
}
答案 1 :(得分:0)
请参阅here了解可能的解决方案。您不需要遍历所有单元格