删除由字典填充的 TableView 单元格
Deleting A TableView Cell Populated By A Dictionary
因此,删除 table 视图单元格非常简单。您从数组中删除对象,然后重新加载 table 视图数据。现在...我有一个 table 视图,它是从 NSMutable 字典而不是数组填充的(我们需要这样做,因为我们正在解析数据并存储它)。有谁知道如何通过这种方法删除单元格?我试过简单地调用 [tableView reloadData];
,这出人意料地有效,但显然创建了一个无限循环。我不喜欢无限循环。有没有人有什么建议?我在研究中找不到任何相关信息。
这是 cellForRowAtIndexPath 委托中的一些相关代码:
if (![frString isEqual:@"COOL STUFF"] && [subString isEqualToString:@"COOL"]) {
NSLog(@"A COOL is showing where it shouldn't, and it's %@", subString);
//remove all cells starting with COOL
[myDictionary removeObjectForKey:[self.dictName objectAtIndex:row]];
[tableView reloadData];
}
此外,我宁愿隐藏单元格,也不愿从字典中永久删除信息。这可能吗?
您做错了几件事:
- 您不应该删除
cellForRowAtIndexPath
中的行,因为当 tableview 想要呈现时会调用它。所以你删除一行,然后它再次呈现,调用 cellForRowAtIndexPath:
,...
- 删除行,或重新加载数据。
deleteRowsAtIndexPaths:
删除带有动画的行集,reloadData
重新加载整个 tableView,因此它取消了动画,并且 deleteRowsAtIndexPaths:
变得毫无意义
- 确保您 return 正确
numberOfRowsInSection:
您是否从字典中删除了数据?
因此,删除 table 视图单元格非常简单。您从数组中删除对象,然后重新加载 table 视图数据。现在...我有一个 table 视图,它是从 NSMutable 字典而不是数组填充的(我们需要这样做,因为我们正在解析数据并存储它)。有谁知道如何通过这种方法删除单元格?我试过简单地调用 [tableView reloadData];
,这出人意料地有效,但显然创建了一个无限循环。我不喜欢无限循环。有没有人有什么建议?我在研究中找不到任何相关信息。
这是 cellForRowAtIndexPath 委托中的一些相关代码:
if (![frString isEqual:@"COOL STUFF"] && [subString isEqualToString:@"COOL"]) {
NSLog(@"A COOL is showing where it shouldn't, and it's %@", subString);
//remove all cells starting with COOL
[myDictionary removeObjectForKey:[self.dictName objectAtIndex:row]];
[tableView reloadData];
}
此外,我宁愿隐藏单元格,也不愿从字典中永久删除信息。这可能吗?
您做错了几件事:
- 您不应该删除
cellForRowAtIndexPath
中的行,因为当 tableview 想要呈现时会调用它。所以你删除一行,然后它再次呈现,调用cellForRowAtIndexPath:
,... - 删除行,或重新加载数据。
deleteRowsAtIndexPaths:
删除带有动画的行集,reloadData
重新加载整个 tableView,因此它取消了动画,并且deleteRowsAtIndexPaths:
变得毫无意义 - 确保您 return 正确
numberOfRowsInSection:
您是否从字典中删除了数据?