2010-08-17 33 views
1

我的應用程序允許用戶重新排列表視圖中的行,但在移動完成後要更改某些內容(將一些文本添加到第一行)後,我想要reloadData如何知道移動行何時完成

我試圖reloadDatamoveRowAtIndexPath:方法,但它使應用程序掛起,因爲這種方法被稱爲很多時間(根據行數需要移動)和表視圖重新加載很多時間。

所以,我只想知道什麼時候移動的行爲完成,然後我只需要一次。有人知道嗎?請幫幫我。非常感謝!

回答

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

你可以在moveRowAtIndexPath方法[self performSelector:selector(doReload) withObject:nil afterDelay:0.1]但你不能直接調用[myTable reloadData]因爲當你發現它會導致一個循環。基本上你需要允許表操作完成,運行循環來調用你的方法,然後重新加載你的表。這有點破解,但效果很好。通常你不需要reloadData在這一點上,但你可能會試圖做一些不尋常的事情。

+0

儘管我們必須做一些技巧,但它工作得很好,謝謝 – 2010-08-17 08:19:03

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

看起來這種超載方法是有道理的,但它並沒有運行 – 2010-08-17 08:17:33

相關問題