OGeek|极客世界-中国程序员成长平台

标题: ios - 使用来自 url 的 uitableview 缓存 UIImage [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 07:28
标题: ios - 使用来自 url 的 uitableview 缓存 UIImage

我有一个 uitableview ,其中包含两个 UImage 的自定义单元格。 Logo 图像取自在线网站,这就是需要缓存图像的原因。加载图像到现在是这样的:

 NSURL * imageURL = [NSURL URLWithString:[arra1 objectAtIndex:indexPath.row / 2]];
 NSData * imageData = [NSData dataWithContentsOfURL:imageURL];

 NSURL * imageURL2 = [NSURL URLWithString:[arra2 objectAtIndex:indexPath.row / 2]];
 NSData * imageData2 = [NSData dataWithContentsOfURL:imageURL2];

 cell.ima1.image = [UIImage imageWithData:imageData];
 cell.ima2.image2 = [UIImage imageWithData:imageData2];

我从搜索中了解到,dataWithContentsOfURL 不是异步的,滚动时会花费很多时间。我尝试了几种方法,但我似乎无法找到正确的一种。这是我第一次缓存 UIImages ,我非常感谢详细的实现解释,这样我可以在完成工作的同时学习。 非常感谢



Best Answer-推荐答案


我使用这个库,非常完美

您只需要将 #import 到您的项目中,并且您还可以使用以下代码在下载图像时定义占位符:

- (UITableViewCell *)tableViewUITableView *)tableView cellForRowAtIndexPathNSIndexPath *)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;
}

它还缓存下载的图像并为您提供出色的性能。

希望对你有帮助!

关于ios - 使用来自 url 的 uitableview 缓存 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23215722/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4