0

标题说得很好,我认为这很容易,但我找不到答案。我认为代码描述了我尝试做的事情。

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

所以 - 首先应该所有单元格都没有复选标记,然后我想为选定的单元格添加一个复选标记。

4

2 回答 2

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;

}
于 2013-10-28T22:13:59.160 回答
0

请参阅此处了解可能的解决方案。您不需要遍历所有单元格

于 2014-03-12T00:18:06.707 回答