动画不适用于UITableView deleteRowsAtIndexPaths:withRowAnimation:

时间:2013-11-14 22:00:57

标签: ios animation uitableview delete-row

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

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

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

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

P.S。我不知道为什么但是insertRowsAtIndexPaths动画似乎工作正常。

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

1 个答案:

答案 0 :(得分:1)

尝试

 [self.tableView beginUpdates];

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

[self.tableView endUpdates];

确保表视图的数据源与tableView的内容同步。

我通常有一个数组作为数据源,并且我覆盖了它的setter,这样它总是在同步。

希望有所帮助