Tableview图像加载缓慢

时间:2012-12-02 11:47:38

标签: objective-c ios uitableview nsurl

我正在尝试将图像从JSON Feed加载到tableview中。下面的代码返回图像,但它使应用程序非常慢和“粘性”。关于如何让它更快的任何想法?这是为tableview中的每个单元格调用的。

NSURL *imageURL = [NSURL URLWithString:@"http://www.site.com/images/image_1.jpg"];
NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
UIImage *cellImage = [UIImage imageWithData:imageData];

谢谢大家!

2 个答案:

答案 0 :(得分:2)

请尝试以下代码。

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_group_t group = dispatch_group_create();
dispatch_group_async(group, queue, ^{
    NSURL *imageURL = [NSURL URLWithString:@"http://www.site.com/images/image_1.jpg"];
    NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
    UIImage *cellImage = [UIImage imageWithData:imageData];

    dispatch_sync(group, ^{
        cell.image = cellImage;
    });
});
dispatch_release(group);

答案 1 :(得分:0)

在主线程中从Internet加载图像总是不好的。

您需要继承UITableViewCell并在后台线程中加载图像。

这里你几乎没有建议如何去做。

Lazy load images in UITableView

Load image to a tableView from URL iphone sdk