UITableViewCell使用复选标记作为切换开关

时间:2013-07-18 23:39:13

标签: ios objective-c uitableview

我想使用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];
}

1 个答案:

答案 0 :(得分:3)

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