我想清除UITableView。首先,我試圖用[self.tableView reloadData]; listOfPosts = nil
清除,但tableView仍然顯示10行。然後我試圖逐行刪除,但結果是一樣的。無法刪除行 - UITableView iOS 7
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
NSLog(@"Number of sections: %i", [self.tableView numberOfSections]); // => 1
NSLog(@"Number of rows in section 0: %i", [self.tableView numberOfRowsInSection:0]); // => 10
[self.tableView beginUpdates];
NSMutableArray *rowsToDelete = [[NSMutableArray alloc] init];
int nPosts = [self.tableView numberOfRowsInSection:0];
for (int i = 0; i < nPosts; i++) {
[rowsToDelete addObject:[NSIndexPath indexPathForRow:i inSection:0]];
}
currentPostList = nil;
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithArray:rowsToDelete] withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];
[self.tableView reloadData];
NSLog(@"Rows after endUpdates: %i", [self.tableView numberOfRowsInSection:0]); // => 0
NSLog(@"Visible rows: %i", [[self.tableView visibleCells] count]); // => 0
// But the tableView still show 10 rows
}];
PD:我使用一個UITableViewController所以self.tableView自動生成
(我爲我的英語不好對不起)
您不應該*需要* *動畫您的更改*和*重新加載表。如果你刪除一個或另一個(但不是兩個),會發生什麼? –
如果我評論'[self.tableView reloadData]'我得到相同的結果。與'[self.tableView beginUpdates] ... [self.tableView endUpdates]' – masipcat
相同想知道這是否可能歸結爲與'currentPostList'的塊相關的惡意。如果你把塊中的所有代碼放入一個新的方法(比如'-clearTable'),並從塊中調用它('[self clearTable]')? –