我的應用程序允許用戶重新排列表視圖中的行,但在移動完成後要更改某些內容(將一些文本添加到第一行)後,我想要reloadData
。如何知道移動行何時完成
我試圖reloadData
在moveRowAtIndexPath:
方法,但它使應用程序掛起,因爲這種方法被稱爲很多時間(根據行數需要移動)和表視圖重新加載很多時間。
所以,我只想知道什麼時候移動的行爲完成,然後我只需要一次。有人知道嗎?請幫幫我。非常感謝!
我的應用程序允許用戶重新排列表視圖中的行,但在移動完成後要更改某些內容(將一些文本添加到第一行)後,我想要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
看起來這種超載方法是有道理的,但它並沒有運行 – 2010-08-17 08:17:33
儘管我們必須做一些技巧,但它工作得很好,謝謝 – 2010-08-17 08:19:03