如何知道移动行何时完成

问题描述:

我的应用程序允许用户重新排列表视图中的行,但在移动完成后要更改某些内容(将一些文本添加到第一行)后,我想要reloadData如何知道移动行何时完成

我试图reloadDatamoveRowAtIndexPath:方法,但它使应用程序挂起,因为这种方法被称为很多时间(根据行数需要移动)和表视图重新加载很多时间。

所以,我只想知道什么时候移动的行为完成,然后我只需要一次。有人知道吗?请帮帮我。非常感谢!

- (void)doReload 
{ 
    [myTable reloadData]; 
} 

你可以在moveRowAtIndexPath方法[self performSelector:selector(doReload) withObject:nil afterDelay:0.1]但你不能直接调用[myTable reloadData]因为当你发现它会导致一个循环。基本上你需要允许表操作完成,运行循环来调用你的方法,然后重新加载你的表。这有点破解,但效果很好。通常你不需要reloadData在这一点上,但你可能会试图做一些不寻常的事情。

+0

尽管我们必须做一些技巧,但它工作得很好,谢谢 – 2010-08-17 08:19:03

-(int)table:(UITable*)table movedRow: (int)row toRow: (int)dest 
+0

看起来这种超载方法是有道理的,但它并没有运行 – 2010-08-17 08:17:33