删除由字典填充的 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: 您是否从字典中删除了数据?