如何在下载后立即显示tableview图像,而不是在重新加载单元格后

时间:2012-09-18 15:54:26

标签: objective-c ios

我有一个显示用户列表的表视图。每个单元格中的头像图像使用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很新。任何人都可以带我走过吗? 感谢

1 个答案:

答案 0 :(得分:1)

您需要在视图上调用setNeedsDisplay以强制刷新。您可以在异步调用的完成处理程序中调用它。