0

我已经看到我的表格视图的一个非常奇怪的行为:我启用了 UITableViewEditingStyleDelete,它在表格视图左侧的编辑模式下显示一个红色的“-”控件。如果我点击该控件,则会出现右侧的删除按钮,并且会转动“-”控件。一切正常,但如果我多次这样做,有时“-”控件是水平的,但删除按钮是可见的: 在此处输入图像描述

这可能与刷新tableView有关吗?我应该在编辑模式下禁用它们吗?

有没有人看到类似的东西或知道如何解决它?

2013 年 5 月 20 日更新:我现在检查每个 NSFetchedResultControllerDelegate 回调,如果我的 tableView 正在编辑,如果是,我不更新 tableView,这将修复该错误。当tableView在正常模式下从编辑返回时,我调用[tableView reloadData],以便tableView是最新的并且包含最新的信息。

但这会破坏动画。有人知道,我如何在不丢失动画的情况下更新我的 tableView?问题是,tableView 不知道在编辑模式下发生了什么。

非常感谢您的帮助!

利纳德

4

1 回答 1

0

动画的丢失只是在编辑模式下停用更新的一部分。另一件事是,如果在编辑模式下添加或删除一行,则必须实现 [tableView reloadData] 。我认为更好的解决方案是通过 NSFetchedResultController 停用任何单元格内容更新。我的表格中的内容经常发生变化,但这在编辑单元格时并不重要。如果表格能够添加或删除任何未停用的单元格,则 tableView 行和部分保持更新,因此您只需要在编辑模式结束时更新行而不是使用 [tableView 更新整个 tableView重新加载数据]。有了这个解决方案,你就有了所有的动画,

更新:在玩了之后,我看到,这个错误的出现方式和以前一样,只是不那么频繁。我认为问题在于,[tableView beginUpdates] 和 [tableView endUpdates] 的调用方式与之前相同,这可能会导致错误。我没有改回 [tableView reloadData] 并且在编辑过程中我没有停用任何更新,因为这是我迄今为止发现的唯一可行的方法(即使我丢失了动画)。

如果有人有其他想法或一些改进,请告诉我。

利纳德

于 2013-05-21T23:15:46.987 回答