删除部分而不向下滚动

时间:2015-10-13 16:47:00

标签: ios tableview

我正在使用UITableView做一个小型应用程序我的TableView中有2个部分。在我的第一部分的最后一行中,有一个UISegmentControl,一个段意味着删除第2部分而另一个部分什么都不做。在viewDidLoad方法中,细分可以选择"什么都不做",当我点击"删除"分割。第2部分被删除了,我的问题是,当我删除第2部分时,我可以保持表格,我搜索了很多关于这个问题的内容,我花了很多时间在这上面。但仍然找不到实现这种效果的解决方案。我的代码如下:

CGPoint offset1 = [self.tableView contentOffset];
NSIndexSet *indexSet = [NSIndexSet indexSetWithIndex:1];           
_deleteSec = YES;
[self.tableView deleteSections:indexSet withRowAnimation:UITableViewRowAnimationAutomatic];

[self.tableView setContentOffset:offset1 animated:NO];

应用程序启动后,我的第一个操作是手动向上滚动TableView。然后我点击删除段,上面的代码被执行,第2部分被删除,但TableView被滚动到初始位置,即应用程序刚刚开始并且TableView首次显示。我搜索了互联网,我找到了一些我认为可以解决我的问题的代码。所以我在下面添加了它们:

[self.tableView deleteSections:indexSet withRowAnimation:UITableViewRowAnimationAutomatic];
[self.tableView reloadData];
[self.tableView layoutIfNeeded];

[self.tableView setContentOffset:offset1 animated:NO];

这次,当我第一次点击删除段时,它可以保持静止并删除第2部分,但是当我点击其他段或其他任何地方时,段操作方法没有被执行,tableview也只是滚动到初始位置本身,这似乎与我有关。有人能解释一下这个现象吗?如何解决这个问题?非常感谢,如果你能帮助我澄清我的疑问。

1 个答案:

答案 0 :(得分:1)

这一行就在这里:

{{1}}

尝试删除它。

你告诉桌子要动画,所以它会。如果您只是告诉它重新加载数据,它将不会生成动画,但表格中的内容将会更新。