如何在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;
}
答案 0 :(得分:1)
我正在回答这个问题,因为评论的时间太长了:
SDWebImage包对于其缓存非常强大 - 尤其是磁盘缓存,这在iOS中可能有点痛苦(不同的操作系统版本支持不同级别/类型的缓存)。 SDWebImage还提供了很多很好的功能 - 你可以在他们的GitHub页面上看到要点(它是顶部的项目符号列表)。
如果它只是您所追求的UIImageView类别(提供setImageWithURL:placeholderImage:
方法),那么一些(我想说“最多”,但我不能用数据/统计数据来支持)人们使用AFNetworking,因为他们很可能已经将它用作网络堆栈。我们的制作应用程序使用AFNetworking + SDWebImage,因为我们需要广泛的AFNetworking功能,但也需要磁盘缓存。
哦,关于图像没有下载 - 这可能是网络问题。您没有收到错误并且应用程序没有崩溃的事实几乎是SDWebImage添加的功能的重点。实现类似的方法需要处理错误情况(网络错误与未授权与错误的URL),并且还要更新UIImageView而不阻塞主线程,所有这些都可能非常复杂,不仅适用于初学者,也适用于中级程序员。功能看似简单 - 下载图像,使用占位符,并在图像到达时更新 - 但这绝对是一项非常重要的任务。