如何在UITableViewCell中显示图像(从JSON服务中动态检索)

时间:2012-12-20 17:33:49

标签: iphone objective-c xcode image tableviewcell

我从JSON服务获取url图像。我知道如何使用UIImageView对象在屏幕上显示它,但我不知道如何在UITableViewCell中执行此操作,因为我无法将UIImageView对象拖放到原型细胞。我检查了一些资源,但它们都非常混乱,在屏幕上和UITableViewCell上显示图像之间的区别并不明确。我相信这篇文章的回复将有助于解决像我这样的很多开发人员的混乱!

我的问题是,在屏幕上显示图像和代码级别UITableViewCell之间有什么区别? (我们也在UIImageView中使用UITableViewCell对象吗?我们拖放任何内容吗?我们需要contentView还是subview?等等。

2 个答案:

答案 0 :(得分:1)

看看这个非常好的教程。它不应该让你的任何问题保持开放。

http://www.markj.net/iphone-asynchronous-table-image/

答案 1 :(得分:0)

我不建议遵循这种方法。表视图有很多行,因此图像太小。只有当图像像横幅时才这样做。

解决方案

如果您仍想上传不同行中的每个图像(所以在单元格中),您可以返回其中包含UIImageWiew的单元格:

- (UITableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString* path; 
    ...   // assign the path according to the index path, so that it loads
    ...   // a different image for every row and section
    UIImage* image=[[UIImage alloc]initWithContentsOfFile: path];
    UITableViewCell* cell=[UITableViewCell new];
    [cell.imageView setImage: image];
    return cell;
}

替代解决方案

如果您希望显示大图像,只需监视行选择,将大图像放在表视图下方,并在行选择更改时更改图像井内容。