在tableview ios6.1中加载图像

时间:2013-03-26 18:24:46

标签: ios ios6 uiimageview uitableview

如何在uitableview ios6.1中加载图像。

我目前正在使用 SDWebImage https://github.com/rs/SDWebImage并且它可以正常工作。但有时它不会加载图片。

还有其他图书馆比我使用的图书馆更好吗?我是ios的初学者,这对我有很大的帮助。

先谢谢。

这是我现在使用的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *MyIdentifier = @"MyIdentifier";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];

    if (cell == nil)
    {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                       reuseIdentifier:MyIdentifier] autorelease];
    }

    // Here we use the new provided setImageWithURL: method to load the web image
    [cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
                   placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

    cell.textLabel.text = @"My Text";
    return cell;
}

1 个答案:

答案 0 :(得分:1)

我正在回答这个问题,因为评论的时间太长了:

SDWebImage包对于其缓存非常强大 - 尤其是磁盘缓存,这在iOS中可能有点痛苦(不同的操作系统版本支持不同级别/类型的缓存)。 SDWebImage还提供了很多很好的功能 - 你可以在他们的GitHub页面上看到要点(它是顶部的项目符号列表)。

如果它只是您所追求的UIImageView类别(提供setImageWithURL:placeholderImage:方法),那么一些(我想说“最多”,但我不能用数据/统计数据来支持)人们使用AFNetworking,因为他们很可能已经将它用作网络堆栈。我们的制作应用程序使用AFNetworking + SDWebImage,因为我们需要广泛的AFNetworking功能,但也需要磁盘缓存。

哦,关于图像没有下载 - 这可能是网络问题。您没有收到错误并且应用程序没有崩溃的事实几乎是SDWebImage添加的功能的重点。实现类似的方法需要处理错误情况(网络错误与未授权与错误的URL),并且还要更新UIImageView而不阻塞主线程,所有这些都可能非常复杂,不仅适用于初学者,也适用于中级程序员。功能看似简单 - 下载图像,使用占位符,并在图像到达时更新 - 但这绝对是一项非常重要的任务。