У меня есть следующая проблема:
У меня есть UITableView с некоторым текстом и некоторыми изображениями в качестве контента. TextLabel ячейки отображает текст, и я добавляю UIView с некоторыми UIImageViews в качестве его подпредставления в представление содержимого ячеек.
Все работает нормально, пока я не удалю некоторые ячейки. Что происходит, я удаляю ячейку (скажем, первую) из таблицы, перезагружаю ее данные и, например, затем вторая ячейка перемещается еще на одну вверх, НО! UIView справа содержит содержимое первой (удаленной) ячейки.
Я не знаю, почему это происходит, хотя я предполагаю, что в моем методе обратного вызова cellForRowAtIndexPath что-то не так.
Я вставлю код, чтобы было понятнее.
Что я могу сделать, так это выгрузить контроллер и загрузить его снова - тогда изображения снова содержат правильный контент....
Вот мой код:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *MyIdentifierUNCHECK = @"MyIdentifierUNCHECK";
MyStuff *m = [allObjects objectAtIndex:indexPath.row];
UITableViewCell *cell = [tableViewdequeueReusableCellWithIdentifier:MyIdentifierUNCHECK];
UIView *v;
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifierUNCHECK] autorelease];
v = [[[UIView alloc] initWithFrame:CGRectMake(5.0, 5.0, 70.0, 70.0)] autorelease];
v.contentMode = UIViewContentModeScaleAspectFill;
[v addSubview:[[UIImageView alloc] init]];//some image view
[cell.contentView addSubview:v];
}
cell.textLabel.text = m.name;
cell.textLabel.numberOfLines = 0;
cell.textLabel.font = [UIFont fontWithName:@"Helvetica-BoldOblique" size:14.0];
cell.imageView.image = [UIImage imageNamed:@"checkbox.png"];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;