【问题标题】:Animation not working for UITableView deleteRowsAtIndexPaths:withRowAnimation:动画不适用于 UITableView deleteRowsAtIndexPaths:withRowAnimation:
【发布时间】:2013-11-14 22:00:56
【问题描述】:
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];

当删除行时,此代码(在方法 commitEditingStyle 中)不会对动画进行任何更改。该行被删除,其他一切都运行良好,除了动画。

无论我将动画样式更改为什么,它只会从左到右擦除文本,同时通过向上移动来删除行。最后一行也做了一件奇怪的事情。它会擦除文本并删除行,但不会同时像行一样。

这是 iOS 7 中的默认行为吗?我不明白为什么会这样。

附:我不知道为什么,但是 insertRowsAtIndexPaths 动画似乎工作正常。

[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:ip] withRowAnimation:UITableViewRowAnimationRight];

【问题讨论】:

  • 我也想知道这个问题...
  • 我认为这是由于删除顺序造成的。首先,您需要更新(或者换句话说,从中删除元素)正在加载到表中的集合,然后调用 remove。
  • 我遇到了同样的问题 - 无论选择什么动画,它总是做同样的事情。

标签: ios animation uitableview delete-row


【解决方案1】:

试试

 [self.tableView beginUpdates];

[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];

[self.tableView endUpdates];

还要确保表格视图的数据源与 tableView 发生的情况同步。

我通常有一个数组作为数据源,我会覆盖它的设置器,这样它就一直处于同步状态。

希望对你有帮助

【讨论】:

  • 对不起,但它没有帮助.. 仍然会做奇怪的事情
猜你喜欢
  • 2013-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-04
  • 2016-02-22
  • 2017-02-22
  • 2014-03-08
相关资源
最近更新 更多