异步图像加载到TableView单元格中

时间:2009-12-03 08:57:52

标签: iphone cocoa-touch uikit tableview

我试图将单个图像加载到分组的表格单元格中。我在互联网上找到了一段代码并进行了修改。原始代码使用UIViews来显示图像,这不是我需要的,但原始代码当然是有效的。 PLease帮助我使这段代码工作,以在单元格单元格中显示图像以进行分组的tableview。我的TableView只有一行,它有UITableViewCellStyleDefault样式。

Original Code

这是我修改过的方法,这是核心方法。

- (void)connectionDidFinishLoading:(NSURLConnection*)theConnection 
{
    [connection release];
    connection=nil;

    UIImage *img = [UIImage imageWithData:data];
    self.image = img;

    self.frame = self.bounds;
    [self setNeedsLayout];

    [data release]; 
    data=nil;
}

这就是我用它在TableView Cell cellForRowAtIndexPath方法中显示图像的方法。

CGRect frame;
frame.size.width=75; frame.size.height=75;
frame.origin.x=0; frame.origin.y=0;
AsyncImageView* asyncImage = [[[AsyncImageView alloc] initWithFrame:frame] autorelease];
[asyncImage loadImageFromURL:imageURL];
cell.imageView.image = asyncImage.image;

1 个答案:

答案 0 :(得分:0)

在您发布的代码中,AsyncImageView的图像直到连接完成加载后才会设置,它实际上会创建图像。问题是,你正在将它的图像立即设置到单元格中。这不会起作用!

您将要创建自定义单元类(子类UITableViewCell)并在表中使用该单元格。有很多示例代码显示如何使用自定义单元格并将其与视图一起布局。而不是使用UITableViewCell的标准imageView,创建自己的布局并使用AsyncImageView来显示您的图像。然后它应该工作。