我想知道是否有人可以回复我,如果调用UITableView reloadData时UITableView队列被刷新。我正在尝试这样做,这对我没有帮助。有什么建议吗?
答案 0 :(得分:8)
如果查看UITableView的头文件,可以看到有一个名为“_reusableTableCells”的私有NSMutableDictionary(iVar)。这是一个字典重用标识符作为键的字典,以及带有当前屏幕外值为单元格的数组。
如果你想以可能随实现方式改变的方式手动刷新排队的单元格,你可以用丑陋的方式这样做,如下所示:
NSMutableDictionary *cells = (NSMutableDictionary*)[self.tableView valueForKey:@"_reusableTableCells"];
[cells removeAllObjects];
希望这会有所帮助......
答案 1 :(得分:4)
加载表后,将重复使用这些单元格。重新加载表不会刷新队列。 reloadData
来电- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
在此方法中,存在if(cell==nil)
条件,以便一旦将单元格加载到内存中,就不会刷新单元格,因此可以重复使用它们。
要解决此问题,请在应用正确信息之前重置您的单元格。
cell.detailTextLabel.text = @"";
cell.accessoryType = UITableViewCellAccessoryNone;
或者如果您使用accessoryView
cell.accessoryView = nil;