1

ユーザーのリストを表示するテーブルビューがあります。各セルのアバター画像は、UIImageView + AFNetworkingを使用して非同期にダウンロードされ、UIImage+TPAdditionsを使用して表示されます。これがcellForRowAtIndexPathからの私のコードスニペットです:

if (cell==nil){
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:SimpleTableIdentifier];
}

cell.textLabel.text = [[global.people objectAtIndex:indexPath.row]name];


// setImageWithUrl:placeholderImage: is taken from UIImageView+AFNetworking

NSString* imgURL =  [[global.people objectAtIndex:indexPath.row]avatar_url];
UIImageView* imgV = [[UIImageView alloc]init];
[imgV setImageWithURL:[NSURL URLWithString:imgURL] placeholderImage:[UIImage imageNamed:@"icon.png"]];

//These are just for formatting and are taken from UIImage+TPAdditions

cell.imageView.image = [imgV.image imageScaledToSize:CGSizeMake(43,43)];
cell.imageView.layer.masksToBounds = YES;
cell.imageView.layer.cornerRadius = 5.0;

これで、アプリが読み込まれると、ユーザーがテーブルビューを上下にスクロールするまで、プレースホルダー画像が表示されます。次に、URLからのアバター画像が各セルの画像ビューに読み込まれます。このスクロールが不要になるようにしたいのですが、アバター画像がダウンロードされるとすぐに、それぞれのセルのテーブルビューに「ポップ」するようにします。NSNotificationが役立つかもしれないことは知っていますが、それをどこでどのように使用するかはよくわかりません。私はiOSにかなり慣れていません。誰かが私にそれを案内してもらえますか?ありがとう

4

1 に答える 1

1

ビューでsetNeedsDisplayを呼び出して、強制的に更新することをお勧めします。これは、非同期呼び出しの完了ハンドラーで呼び出します。

于 2012-09-18T17:19:31.360 に答える