我想将Checkmark用作切换开关,以允许用户选择一捆物品,但这不能按预期方式工作-我必须点按两次该单元格,单元格才能打开/关闭Checkmark。而且,如果我使用[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];
}

最佳答案

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

10-08 03:41