更改其editable属性

更改其editable属性

问候我有一个tableView,其内容来自字典。加载内容:

//For the table view content
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    UITableViewCell *cell = nil;
    cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];

    if(!cell){
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"Cell"];
    }

    NSString *key = [[self sectionKeys] objectAtIndex:[indexPath section]];
    NSArray *contents = [[self sectionContents] objectForKey:key];
    NSString *contentForThisRow = [contents objectAtIndex:[indexPath row]];
    cell.textLabel.text=contentForThisRow;

   //cell.textLabel.text=[self.msgCourse objectAtIndex:indexPath.row];

    return cell;

}


我想使行可编辑,说用户可以删除一些行:

//Below are for editting
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{

    return YES;

}

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{

    if (editingStyle == UITableViewCellEditingStyleDelete) {
        // Delete the row from the data source
     [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
    }
}


我知道删除它时必须返回错误信息content not matching with the dictionary。所以修复它的最好方法是修复我的字典,请问这是真的吗?有什么例子吗?

最佳答案

if (editingStyle == UITableViewCellEditingStyleDelete) {
    // Delete the row from the data source
 [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}


问题是您没有按照评论说的做。您没有从数据源(self.sectionKeysself.sectionContents)中删除该行。您必须先执行此操作,然后再从表中删除该行。

关于ios - 与UITableview一起使用的mutableDictionary:更改其editable属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29854163/

10-08 23:41