Я пытаюсь напечатать UITableView с двумя различными типами UITableViewCells.
- Пустые ячейки табличного представления, которые не содержат ничего (первые 2 ячейки), только черный фон
- Ячейки табличного представления, содержащие метку, изображение и т. Д., Начиная с 1 (3-я и последующие ячейки)
Высота моего табличного представления может в любой момент вместить не менее 3 ячеек табличного представления.
Когда я впервые загружаю табличное представление, табличное представление выглядит совершенно нормально - первые две строки черного цвета, за ними следует третья строка с надписью «1».
Однако, после прокрутки вниз до прокрутки назад вверх.Мои первые две пустые ячейки (которые должны быть пустыми) заполнены вещами, которые должны быть найдены только в 3-й и последующих ячейках.
Я подозреваю, что это происходит из-за повторного использования ячеек таблицы, но я 'Я все еще не могу понять.
Фрагменты кода:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
switch ([indexPath row]) {
case 0:
cell.contentView.backgroundColor = [UIColor blackColor];
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
break;
case 1:
cell.contentView.backgroundColor = [UIColor blackColor];
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
break;
default:
cell.contentView.backgroundColor = [UIColor blackColor];
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
UILabel *rowLabel = [[UILabel alloc] initWithFrame:CGRectMake(25, 30, 200, 30)];
rowLabel.text = [NSString stringWithFormat:@"Row %d", [indexPath row]-1];
rowLabel.backgroundColor = [UIColor blackColor];
rowLabel.textColor = [UIColor whiteColor];
[rowLabel setFont:[UIFont fontWithName:@"GillSans-Bold" size:18]];
[cell.contentView rowLabel]; [rowLabel release];
UIButton *aButton = [[UIButton alloc] initWithFrame:CGRectMake(100, 50, 40, 40)];
[aButton setImage:anImage forState:UIControlStateNormal];
[cell.contentView addSubview:aButton];
[aButton release];
break;
}
return cell;
}