改變數據時,我的桌面視圖正在發生奇怪的事情。我有這樣的事情:爲什麼我的[tableview reloadData]執行得太晚?
// fadeout existing data
... // change data (new values for the cells are blank)
for{ // loop all rows
[TableView reloadRowsAtIndexPaths: withRowAnimation:]; // smooth fade out
}
// add one new row to the table
... // change data (just add one new row but leave the cells empty)
[TableView reloadData] // reload all of the data (new row should be added)
... // change data (just add values to the existing cells)
for{ // loop all rows
[TableView reloadRowsAtIndexPaths: withRowAnimation:]; // smooth fade in
}
理論上,至少我認爲,這應該工作。但我有一些小故障,所以我在for循環中添加了NSLogs,並在:- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
,所以我注意到我的[tableView reloadData]在循環第一行淡入之後執行!@#
我正在考慮做出某種reloadData和淡入循環之間的延遲,但我不想強制它的工作,我希望它能正常工作。
- 有沒有更好的方法來完成我想要做的事情?
- 我可以在不調用'reloadData'方法的情況下在表底部動態添加一行嗎?
謝謝。
你不需要在每一行上執行for()循環來重新加載它。 reloadRowsAtIndexPaths需要一個索引路徑數組,因此只需創建所有行的數組,然後使用一次重新加載就可以完成。 – jsd 2012-02-16 19:26:13