在我的一个tableviews的编辑模式中,我从一个部分删除了一行。以下部分有一个标题。删除上面部分中的行会导致下面的部分标题重复。所以我有2个标题,一个在另一个之上。
我还尝试在删除后强制重新加载该部分无效:
[self.tableView beginUpdates];
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
NSIndexSet * indexSet = [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(3,1)];
[self.tableView reloadSections:indexSet withRowAnimation:UITableViewRowAnimationFade];
[indexSet release];
[self.tableView endUpdates];
我做错了什么想法?
有趣的是,未能删除的标题未被“看到”。如果我向右滚动表格视图的内容,然后让它快速回退,则只能看到顶部标题视图。它总是忽略应该删除的标题。
答案 0 :(得分:1)
我尝试过不同的方式,(注释代码),但最后开始和结束更新技术的工作原理。谢谢Megasaur。
[self.tableView beginUpdates];
[tableView reloadSections:[NSIndexSet indexSetWithIndex:section] withRowAnimation:UITableViewRowAnimationFade];
[tableView scrollRectToVisible:[tableView rectForSection:section] animated:YES];
//[tableView setNeedsDisplay];
//[self.view setNeedsDisplay];
[self.tableView endUpdates];
答案 1 :(得分:0)
虽然我没有使用多个部分,但我在单个部分遇到了类似的问题。如果不更改基础数据源(项的数量是键的数量),则表视图无法正确呈现。在更新显示之前,我会确保您的基础数据源已删除行。
答案 2 :(得分:0)
表部分崩溃/展开似乎无法正常工作。它会很棒。我采用了另一种方法来实现我的目标。我使用scrollview来包含所有其他视图和表。通过这种方式我有一些问题来捕获单元格选择,因为我为每个部分使用单独的视图控制器(现在是View)。