【问题标题】:Loading image from url problem iphone从 url 问题 iphone 加载图像
【发布时间】:2010-07-26 09:01:15
【问题描述】:

我正在将图像从 url 加载到 webviews 中,但这向我展示了被剪掉的图像。我尝试做 sizeToFit,但是在我的 webview 中显示了一个非常小的图像,因为网页很大并且图像在其左上角。

编辑: 这就是我在 webview 中加载图像的方式。这里,expanded_photo 是 webview。

  NSString *urlAddress = [NSString stringWithFormat:@"%@",photo_url];   
  NSURL *url = [NSURL URLWithString:urlAddress];           
  NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];            
  [expanded_photo loadRequest:requestObj];                  

每当我尝试使用如下 uiimage 通过 uiimageview 加载它时,这里 expand_photo 是我在 nib 文件中创建的 imageview:

UIImage *image1 = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:photo_url]]];
expanded_photo.image = image1;

这需要很长时间才能加载。

我想要一个可以在短时间内从 url 加载图像并且图像不会被剪切的解决方案。

有人可以帮忙吗?

提前感谢。

【问题讨论】:

  • 这是从 URL 加载图像的方式。关于显示图像 - 我不明白你如何显示它。是 UIImageView 吗?如果是,则发布图像视图启动代码。你为什么说网络视图?它与问题有何联系?
  • 在该类中,创建一个异步连接。并做同样的事情。你做不到吗?

标签: iphone url uiimage


【解决方案1】:

请注意 -[NSData dataWithContentsOfURL:] 会同步加载数据,因此会阻塞您的主线程,直到下载完成。当您以这种方式加载多个图像时,所有这些加载操作都会按顺序执行。这不仅速度慢,而且您的应用在加载过程中没有响应。

您可以考虑在后台线程中移动实际加载请求(使用 NSOperationQueue)或使用 NSURLConnection 异步加载图像。

【讨论】:

  • 感谢 Ortwin 的回复。目前,我只想在主线程上显示此图像,但我现在关心的是花费的时间。我也不想要 webview 显示的剪辑图像。
  • 您能更具体地说明您在哪里浪费时间吗?实际获取是花时间还是图像解码?不同的图像 URL 是否会发生这种情况,所以您可以省略服务器端的问题吗?您只加载一张图片吗?
  • 一次,我只加载一张图片。在 webview 中加载图像时不会花费太多时间,但是当我使用 -[NSData dataWithContentsOfURL:] 时会花费很多时间。这就是为什么我猜解码需要花费很多时间的原因。
  • 不应该。我会拆分代码并测量各个操作需要多长时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-13
  • 2016-08-06
  • 1970-01-01
  • 2013-01-15
  • 1970-01-01
  • 1970-01-01
  • 2013-04-12
相关资源
最近更新 更多