问候我有一个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.sectionKeys
和self.sectionContents
)中删除该行。您必须先执行此操作,然后再从表中删除该行。关于ios - 与UITableview一起使用的mutableDictionary:更改其editable属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29854163/