UITableView を作成しようとしています。ただし、私のテーブルの欠点は、スクロールすると(セルが非表示になってから再び表示されると)、タブがリセットされ、サーバーから画像が再度読み込まれることです。画像を読み込まないようにしたり、前のセルを保持したりするにはどうすればよいですか
static NSString *myIdentifier = @"myIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:myIdentifier];
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:myIdentifier];
backImage = [[UIImageView alloc] initWithFrame:CGRectMake(2, 4, 300, 62)];
userDp = [[UIImageView alloc] initWithFrame:CGRectMake(11, 10, 50, 50)];
name = [[UILabel alloc] initWithFrame:CGRectMake(67, 12, 176, 20)];
name.font = [UIFont fontWithName:@"HelveticaLTStd-Bold" size:12];
CustomActivityViewer *imgIndicator = [[CustomActivityViewer alloc] initWithView:userDp];
[imgIndicator startAnimating];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0),^{
UIImage *img = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@/%@", IMAGE_URL, player.imagePath]]]];
dispatch_async(dispatch_get_main_queue(), ^{
[imgIndicator stopAnimating];
if (img != nil)
userDp.image = img;
[imgIndicator stopAnimating];
});
});
[name setShadowColor:[UIColor blackColor]];
[name setShadowOffset:CGSizeMake(1, 1)];
name.textColor = [UIColor colorWithRed:1.0 green:0.824 blue:0 alpha:1.0];
cell.accessoryType = UITableViewCellAccessoryNone;
[cell setSelectionStyle:UITableViewCellEditingStyleNone];
cell.backgroundColor = [UIColor clearColor];
[cell.contentView addSubview:backImage];
[cell.contentView addSubview:userDp];
[cell.contentView addSubview:name];
return cell;
}
if (cell!= nil) を配置すると、セルが繰り返されます。
何をすべきか?
PS iPhone独自のチュートリアルの1つで、セルがnilでない場合、cell.contentViewがタグ付きのアイテムを設定し、タグ付きのビューを呼び出すようなものを見ました。そのチュートリアルが見つかりませんでした。知ってる人がいたら念のため