2013-11-14 31 views
4
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; 

此代碼(在方法commitEditingStyle中)在刪除行時不會對動畫進行任何更改。該行被刪除,其他一切運行良好,除了動畫。不適用於UITableView的動畫deleteRowsAtIndexPaths:withRowAnimation:

無論我更改動畫樣式,它只是從左到右擦除文本,同時通過向上移動來刪除行。而最後一行也是一件奇怪的事情。它擦除文本並刪除行,但不像行中的行一樣。

這是iOS 7的默認行爲嗎?我不明白這是爲什麼。

P.S.我不知道爲什麼,但insertRowsAtIndexPaths動畫似乎很好。

[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:ip] withRowAnimation:UITableViewRowAnimationRight]; 
+0

我也想知道這個問題... –

+0

我認爲這是由於去除的序列。首先,您需要更新(或換句話說,刪除元素)正在加載到表中的集合,然後調用remove。 –

+1

我遇到了同樣的問題 - 無論選擇哪種動畫,它總是執行相同的操作。 – Omaer

回答

1

嘗試

[self.tableView beginUpdates]; 

[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; 

[self.tableView endUpdates]; 

同時也要確保你的表視圖的數據源保持同步會發生什麼變化的tableView。

我通常有一個數組作爲數據源,我覆蓋了它的setter,這樣它就可以同步。

希望它可以幫助

+0

對不起,但它沒有幫助..仍然做它奇怪的事情 – BridgeTheGap