0

我的表格视图中有 4 个部分,当按下一行时,我希望在该行中添加一个复选标记。使用下面的代码,如果我选择一行,其他一些行也会被选中,这是不希望的。我猜它与几个部分有关,但我不知道如何检查或修复它。我的 _allTagsList 是一个带有 4 个字典的 NSMutableArray。

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
 {
     NSDictionary *dictionary = [_allTagsList objectAtIndex:indexPath.section];
     NSArray *array = [dictionary objectForKey:@"Tags"];
     NSString *selectedTag = [array objectAtIndex:indexPath.row];


     if([tableView cellForRowAtIndexPath:indexPath].accessoryType == UITableViewCellAccessoryCheckmark)
     {
         [tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryNone;
     }
     else
     {
         [tableView cellForRowAtIndexPath:indexPath].accessoryType = UITableViewCellAccessoryCheckmark;
     }

     [tableView deselectRowAtIndexPath:indexPath animated:YES];
}
4

1 回答 1

2

您需要存储选择了哪些 indexPaths,然后在您的 cellForRowAtIndexPath 函数中,您还需要根据这些保存的 indexPaths 设置附件类型。如果您更改单元格上的附件类型然后滚动,因为该单元格被回收,附件类型仍将保持选中状态。

于 2012-05-04T21:36:58.157 回答