我有一個UITableView
在小部件中,我希望用動畫重新加載它。 [self.tableView reloadData]
工程很好,但重新加載不是動畫。我知道我應該使用reloadSections:withRowAnimation:
進行動畫製作,但還有一個問題。reloadSections:withRowAnimation:不更新行數
該表確實正在更新,並且numberOfRowsInSection:
返回新值,但在視覺上看到的行數仍然相同。
例如:如果我有一個帶有2行的UITableView
,我想將它更新爲4行,表中仍然有2行。這兩個單元內的內容將按預期進行更新,但應該有4個單元。我知道numberOfRowsInSection:
返回4
調用,而不是reloadSections:withRowAnimation:
我發現了這一小段的解決方法[self.tableView reloadData]
時,不會發生此問題:
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationAutomatic];
[self.tableView reloadData];
調用兩種方法之一後,其他人用動畫和4個單元格重新載入表格。我認爲這是一個iOS 8的bug,也許是因爲我在一個小部件中使用tableView?
您應該使用 reloadRowsAtIndexPaths:withRowAnimation:notreloadSections:withRowAnimation – rdelmar 2014-09-19 19:49:00
@rdelmar爲什麼我要重新加載整個部分並添加新行時使用此方法? – 2014-09-20 10:26:57
我仔細研究了一下,reloadSections應該可以正常工作(它適用於iOS 8)。你需要顯示更多的代碼;具體而言,您如何更新數據源以及您要調用reloadSections的位置。 – rdelmar 2014-09-20 15:51:58