因此,删除表格视图单元格非常简单。您从数组中删除该对象,并重新加载表视图数据。现在......我有一个从NSMutableDictionary而不是数组填充的表视图(我们需要因为我们正在解析数据并存储它)。有谁知道如何通过这种方法删除单元格?我试过简单地调用[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];
}
另外,我宁愿隐藏单元格而不是永久删除字典中的信息。这可能吗?
答案 0 :(得分:1)
有些事情你做错了:
cellForRowAtIndexPath
中的行,因为在tableview要呈现时会调用它们。因此,您删除一行,然后再次渲染,调用cellForRowAtIndexPath:
,... deleteRowsAtIndexPaths:
删除带动画的行集,reloadData
重新加载整个tableView,因此取消动画,deleteRowsAtIndexPaths:
变为无意义numberOfRowsInSection:
吗?