一些帮助将不胜感激!
我有一个自定义 UITableView 单元格,由一个图像(绿色、橙色或红色)和两个不同字体大小的标签组成。UITableView 由对象的 NSMutableArray 驱动。
UITableView 分为三个部分,第一部分包含所有带有红色图像的单元格,第二部分包含橙色,第三部分包含绿色。
我已经实现了在 UITableView 中重新排列单元格的功能,允许用户将带有红色图像的项目从红色部分拖到橙色部分。这种拖动效果很好,并且基础数据已正确更新。我知道是这种情况,因为如果我选择单元格,我会转到其详细视图并更新数据。
但是,直到我进入详细信息(或退出应用程序)并返回后,UITableView 才会更新!如果我将有问题的单元格滚动出视图并再次返回视图,它也会更新,因此数组显然包含正确的数据。我只是无法触发视图刷新!
在更改 moveRowAtIndexPath 中的基础数据的代码之后,我尝试了以下操作:
[self.tableView reloadData];
但是,这会导致异常。苹果语言参考实际上说在插入、删除或动画时不能调用 reloadData,这当然是我正在做的。此外,尝试只刷新单元格
[self setNeedsDisplay];
不起作用(尽管它也没有崩溃)。
关于如何刷新 UITableView 的任何想法?我找不到 afterMoveHasBeenCompleted: 方法或任何东西,所以如果我在 moveRowAtIndexPath: 方法期间无法调用 reloadData,那么我在哪里调用它?!