我想使用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];
}
答案 0 :(得分:3)
您的代码正在更改视图属性,然后从模型数据重新加载表视图。在重新加载之前,您应该更改模型数据而不是视图属性。