2011-06-21 62 views
9

我已經使用這個UITableView method問題:UITableView中的錯誤(deleteSections:withRowAnimation:)?

- (void)deleteSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation 

首先,文件說:

動畫: 是動畫部分的刪除,否則沒有。

但參數動畫實際上是enum型的UITableViewRowAnimation而不是BOOL!?

那麼如何禁用動畫呢?我試過NOUITableViewRowAnimationNone。什麼都沒有節刪除總是動畫。

我知道我可以用[tableView reloadData]代替。這將解決我的問題。我只是好奇,如果這是一個已知的問題,並且如果可以禁用這個tableview方法的動畫。

謝謝!

+0

你找到解決辦法嗎? –

回答

4

關於文檔中的YES/NO,而參數是UITableViewRowAnimation類型的,我想這是來自舊版API的其餘參數爲BOOL之前的其餘部分。無論如何,文件確實是錯誤的。

不要猶豫,反饋發送給Apple的這種(使用「這是很好的,但...」鏈接文檔的底部)

2

呃,很明顯,文檔確實是越野車。您傳遞的參數說明如何爲刪除設置動畫。如果您通過UITableViewRowAnimationNone,則更新會在沒有動畫的情況下立即發生。但是,當您刪除某個部分下方的部分時,它會以動畫方式向上移動。

您應該嘗試使用動畫。這樣用戶可以看到發生了什麼。

1

我相信你需要嵌入一個beginUpdates塊內的deleteSections通話:

[tableView beginUpdates]; 
[tableView deleteSections:... withRowAnimation:... ]; 
[tableView endUpdates]; 

documentation似乎無論如何說。雖然我沒有用UITableRowViewAnimationNone進行測試。

43

這是一種黑客攻擊,但這種擺脫了插入的動畫:

[UIView setAnimationsEnabled:NO]; 
[self.tableView insertRowsAtIndexPaths:insertedIndexPaths withRowAnimation:UITableViewRowAnimationNone]; 
[UIView setAnimationsEnabled:YES]; 
+0

哇!多數民衆贊成在我工作...謝謝 –

+0

@samvermette謝謝!謝謝!經過一個小時的沮喪,這是我需要的答案。 –

+0

謝謝你,很好的答案! – Eugene