0

我想将复选标记用作切换开关,让用户选择一组项目,但这不能按预期工作 - 我必须点击单元格 2 次才能使单元格打开/关闭复选标记。如果我这样做[tableView reloadData]而不是reloadRowsAtIndexPaths它根本不起作用。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

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

    [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
}
4

1 回答 1

3

您的代码正在更改视图属性,然后从模型数据中重新加载表视图。在重新加载之前,您应该更改模型数据而不是视图属性。

于 2013-07-18T23:55:02.770 回答