插入/删除后UITableViewCell消失

时间:2011-09-01 16:01:12

标签: objective-c ios uitableview

我的项目中有一些UITableView,有时我需要在它们之间交换单元格。单元格足够复杂,每次将它们从一个表格移动到另一个表格时,需要花费大量时间重新创建它们,所以我创建它一次,保持数组并在cellForRowAtIndexPath之间拾取必要的单元格表看起来像这样:

NSIndexPath* pathForMovedCell = [firstTableView indexPathForCell:movedCell];
[firstTableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:pathForMovedCell] withRowAnimation:UITableViewRowAnimationFade];
//There is some delay for show animation and switch between view controllers
[secondTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:pathForMovedCell] withRowAnimation:UITableViewRowAnimationFade];

此代码工作得很好,但有时(总是,如果延迟小于0.33秒),单元格不会在secondTableView上绘制。它通常是插入的,如果从可见区域滚动它们并返回它们将被绘制。我认为如果在删除动画结束之前插入就会发生这种情况。如果我做了很短的延迟,细胞经常消失,我不想留下大量的时间储备,因为它看起来像滞后,所以我想正确地解决这个问题。我在从[cell setNeedsDisplay]返回单元格之前尝试添加cellForRowAtIndexPath,但它不起作用。

有什么建议吗?

0 个答案:

没有答案