2011-01-07 19 views
4

我在想,如果有一個人能請回復我如果當UITableView的reloadData是called.I我試圖這樣做的UITableView隊列被刷新,這個心不是幫助me.Any建議?法拉盛的UITableView隊列細胞

+0

做什麼你調用UITableView「隊列」? – VdesmedT 2011-01-07 10:15:34

回答

4

表格加載完成後,單元格將被重新使用。重新加載表不會刷新隊列。 reloadData調用- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

在這種方法中存在if(cell==nil)條件,以便細胞一旦加載到內存中就不會刷新,因此可以重新使用。

要解決這個問題,你將正確的信息之前,重置您的細胞。

cell.detailTextLabel.text = @""; 
cell.accessoryType = UITableViewCellAccessoryNone; 

或者,如果您使用的是accessoryView

cell.accessoryView = nil; 

也來看看這個例子。 UITableView not updating correctly when scrolling.

8

如果您查看UITableView的頭文件,您可以看到有一個名爲「_reusableTableCells」的私有NSMutableDictionary(iVar)。這是一個包含單元格重用標識符作爲關鍵字和數組的單元格的當前不在屏幕上的字典。

如果你想手動刷新的方式排隊細胞可以與實施改變,你可以在醜陋的方式做到這一點,就像這樣:

NSMutableDictionary *cells = (NSMutableDictionary*)[self.tableView valueForKey:@"_reusableTableCells"]; 
[cells removeAllObjects]; 

希望這有助於...

+0

Ohhhh ohhh ohh這是神奇的 – fnc12 2014-10-15 13:33:38