法拉盛的UITableView队列细胞

问题描述:

我在想,如果有一个人能请回复我如果当UITableView的reloadData是called.I我试图这样做的UITableView队列被刷新,这个心不是帮助me.Any建议?法拉盛的UITableView队列细胞

+0

做什么你调用UITableView“队列”? – VdesmedT 2011-01-07 10:15:34

表格加载完成后,单元格将被重新使用。重新加载表不会刷新队列。 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.

如果您查看UITableView的头文件,您可以看到有一个名为“_reusableTableCells”的私有NSMutableDictionary(iVar)。这是一个包含单元格重用标识符作为关键字和数组的单元格的当前不在屏幕上的字典。

如果你想手动刷新的方式排队细胞可以与实施改变,你可以在丑陋的方式做到这一点,就像这样:

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

希望这有助于...

+0

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