如何知道移动行何时完成
问题描述:
我的应用程序允许用户重新排列表视图中的行,但在移动完成后要更改某些内容(将一些文本添加到第一行)后,我想要reloadData
。如何知道移动行何时完成
我试图reloadData
在moveRowAtIndexPath:
方法,但它使应用程序挂起,因为这种方法被称为很多时间(根据行数需要移动)和表视图重新加载很多时间。
所以,我只想知道什么时候移动的行为完成,然后我只需要一次。有人知道吗?请帮帮我。非常感谢!
答
- (void)doReload
{
[myTable reloadData];
}
你可以在moveRowAtIndexPath
方法[self performSelector:selector(doReload) withObject:nil afterDelay:0.1]
但你不能直接调用[myTable reloadData]
因为当你发现它会导致一个循环。基本上你需要允许表操作完成,运行循环来调用你的方法,然后重新加载你的表。这有点破解,但效果很好。通常你不需要reloadData
在这一点上,但你可能会试图做一些不寻常的事情。
答
-(int)table:(UITable*)table movedRow: (int)row toRow: (int)dest
+0
看起来这种超载方法是有道理的,但它并没有运行 – 2010-08-17 08:17:33
尽管我们必须做一些技巧,但它工作得很好,谢谢 – 2010-08-17 08:19:03