如何在使用多个部分时为 tableView 单元格的删除/添加设置动画,而部分的数量可能会发生变化

Posted

技术标签:

【中文标题】如何在使用多个部分时为 tableView 单元格的删除/添加设置动画,而部分的数量可能会发生变化【英文标题】:How to animate the removal/addition of tableView cells when using multiple sections while the number of sections has the possibility of changing 【发布时间】:2016-03-25 05:40:54 【问题描述】:

所以我有一个UITableView 有很多部分,每个部分都包含带有特定字母的项目(按字母顺序排序)。用户可以向该表中添加更多数据,因此当他们添加进入不存在的部分的新项目时,必须创建一个新部分。删除时同样的问题,如果一个部分中的最后一个项目被删除,整个部分将被删除。我将如何制作动画?

我发现了类似的东西:UITableview reloaddata with animation

但这对我没有帮助。它建议使用这种方法(迅速):

[_tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];

如果您在重新加载之前和之后有相同数量的部分,这非常有用,但我的没有。部分的数量可能会发生变化,从而导致崩溃。

【问题讨论】:

您必须确保,您不必在编辑打开时更改表格视图。 【参考方案1】:

出于上述目的,您不应重新加载数据。要添加您应该使用的新部分,

- (void)insertSections:(NSIndexSet *)sections
      withRowAnimation:(UITableViewRowAnimation)animation

为了删除你应该使用的部分,

- (void)deleteSections:(NSIndexSet *)sections
      withRowAnimation:(UITableViewRowAnimation)animation

【讨论】:

以上是关于如何在使用多个部分时为 tableView 单元格的删除/添加设置动画,而部分的数量可能会发生变化的主要内容,如果未能解决你的问题,请参考以下文章

TableView - 不能删除多个单元格

在 TableView 部分中选择单元格

如何在iOS,Objective C的tableview中的每个部分中仅实现单个单元格选择

在单元格内编辑textview时,将另一个单元格添加到tableview

UIButton状态在用多个部分滚动tableview时改变 - Swift

UIButton 状态在滚动带有多个部分的 tableview 时发生变化 - Swift