私は次の問題を抱えています:
コンテンツとしていくつかのテキストといくつかの画像を含むUITableViewがあります。セルのTextLabelにテキストが表示され、セルのコンテンツビューのサブビューとしていくつかのUIImageViewを含むUIViewを追加します。
いくつかのセルを削除するまで、すべてが正常に機能します。何が起こるかというと、テーブルからセル(最初のセルとしましょう)を削除し、そのデータをリロードすると、たとえば2番目のセルがさらに1つ上に移動します。右側の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;