解析并显示json后加载图像

时间:2013-05-13 01:09:42

标签: uiimageview uiimage

我想知道如何在不延迟用户的情况下加载图像。

我一直在尝试从网址加载图片,在显示视图并显示所有用户信息后,所以当用户点击按钮时,视图会立即显示。

由于

2 个答案:

答案 0 :(得分:0)

您提出的任何解决方案都需要异步加载图像(即在后台)。我建议您在从JSON获取URL后立即启动后台线程来加载图像,这样当用户点击按钮显示它时它就会准备就绪。

我还建议进行一些缓存,因此以前下载的图像已经“在磁盘上”,无需通过网络显示。

Here's a sample project I did that displays how to load (and cache) images from URL's。它不是JSON,但它可能会帮助你。

答案 1 :(得分:0)

使用NSURLConnection进行下载:

NSURLRequest* req = [NSURLRequest requestWithURL:url];
NSOperationQueue* q = [NSOperationQueue mainQueue];
[NSURLConnection sendAsynchronousRequest:req queue:q
   completionHandler:^(NSURLResponse *resp, NSData *d, NSError *err) {
       if (d) {
           UIImage* im = [UIImage imageWithData:d];
           // do something with the image
       }
   }];

下载发生在后台线程上,因此用户不会延迟,并且(最重要的)主线程未被阻止;但是一旦下载完成,完成处理程序就会在主线程上发生,所以现在可以安全地将图像粘贴到您的界面中,或者将属性设置为它或其他任何东西。