1

我在重新加载选定的单元格时遇到问题。试图按照教程进行操作,但现在遇到了一个奇怪的问题。我已经制作了一个列表,其中选择一个项目应该显示/删除一个复选标记。但是,在我选择列表中的另一个单元格之前,该单元格不会更新。

有任何想法吗?

我在下面附上了相关的源代码。

谢谢,克

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"ListPrototypeCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    XYZToDoItem *toDoItem = [self.toDoItems objectAtIndex:indexPath.row];
cell.textLabel.text = toDoItem.itemName;

if(toDoItem.completed) {
    cell.accessoryType = UITableViewCellAccessoryCheckmark;
} else {
    cell.accessoryType = UITableViewCellAccessoryNone;
}
return cell;
}

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:NO];
XYZToDoItem *toDoItem = [self.toDoItems objectAtIndex:indexPath.row];
toDoItem.completed = !toDoItem.completed;
[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
}
4

2 回答 2

4

你不小心实现didDeselectRowAtIndexPath了而不是didSelectRowAtIndexPath.

于 2013-11-09T01:12:39.143 回答
2

你的问题是你没有使用didSelectRowAtIndexPath但是didDeselectRowAtIndexPath现在每次你取消选择你的​​单元格时你更新你的单元格:)

于 2013-11-09T02:37:53.423 回答