iPhone中的异步图像加载?

时间:2013-06-29 09:41:10

标签: url asynchronous uiimage nsmutablearray

您好我是iPhone应用程序的新手。在我的应用程序中,我使用了tableview。

当我点击表格单元格时,它会详细查看具有UIScrollview的视图。在哪里我正在加载

来自NSMutableArray的图片。在那个NSMutableArray中有一些URL图像。

当我点击表格单元格时,需要更多时间来加载所有图像。

我需要帮助才能完成我的申请。许多人说要异步做

但我不知道该怎么做。

提前谢谢。等待解决方案。

2 个答案:

答案 0 :(得分:2)

您应该使用AFNetworking之类的库来加载图像,它可以处理下载和交换tableView上的图像。

答案 1 :(得分:1)

首先,我想推荐你Paul Hegarty tutorials(在讲座9,10和主要是11(多线程)),你可以学到太多。

这里有一些示例代码可以帮助您快速但多余:

dispatch_queue_t imageFetchQ = dispatch_queue_create("image fetcher", NULL);
    dispatch_async(imageFetchQ, ^{
        NSData *imageData = [[NSData alloc] initWithContentsOfURL:self.imageURL];  // could take a while
        // UIImage is one of the few UIKit objects which is thread-safe, so we can do this here
        UIImage *image = [[UIImage alloc] initWithData:imageData];
        // check to make sure we are even still interested in this image (might have touched away)
        if (self.imageURL == imageURL) {
            // dispatch back to main queue to do UIKit work
            dispatch_async(dispatch_get_main_queue(), ^{
                if (image) {
                    self.scrollView.zoomScale = 1.0;
                    self.scrollView.contentSize = image.size;
                    self.imageView.image = image;
                    self.imageView.frame = CGRectMake(0, 0, image.size.width, image.size.height);
                }
            });
        }
    });