我正在寻找解决方案......
代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *CellIdentifier = @"ItemCardapio";
NSString *nibName = @"ItemCardapioCell";
ItemCardapioCell *cell = (ItemCardapioCell *) [self.restaurantsList dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:nibName owner:self options:nil];
cell = (ItemCardapioCell *)[nib objectAtIndex:0];
[cell initCellWithRestaurant:@"" tipoRestaurante:@""];
}
return cell;
}
答案 0 :(得分:5)
我发现如果细胞重复出现问题,当你把不应该放在if (cell == nil)
位的东西时,就会出现问题。
原因是如果您没有适当地更新单元格的某些方面,表格视图将最终使用不正确的重用单元格。
尝试从if (cell == nil)
位中取出直接更改单元格的任何内容,并且应该停止重复单元格的问题。
答案 1 :(得分:0)
这是我用于自定义单元格的内容:
static NSString *cellIdentifier = @"ItemCardapioCell";
ItemCardapioCell *cell = (ItemCardapioCell *) [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
NSLog(@"Creating Cell");
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"ItemCardapioCell" owner:nil options:nil];
for(id currentObject in topLevelObjects)
{
if([currentObject isKindOfClass:[ItemCardapioCell class]])
{
cell = (ItemCardapioCell *)currentObject;
break;
}
}
};