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