在后台线程下载后,在UIWebView中重新加载图像

时间:2011-02-25 15:23:25

标签: iphone

我有一个经常登录服务器并将一批文章下载到iphone的应用程序。文章是html,只使用核心数据存储。 一篇文章在页面上有0-n图像。

在文本太慢的同时下载所有相关图像并占用太多带宽。用户不太可能打开每篇文章。如果他们打开一篇文章很可能会打开几次。

所以我想在需要时在本地下载和存储图像。

这些文章列在UITableView中。点击文章时,弹出一个显示文章的UIWebView。

我有一个功能可以检查我是否已经下载了与该文章相关的图像。如果我有,我只需弹出UIWebView - 一切正常。

如果我没有下载图像,我会下载并下载它们并将它们存储到我的Documents目录中。虽然这个我工作,应用程序挂起图像下载时。不是很整洁。

我希望文章能够快速打开并在文章打开的情况下下载图像。

所以我所做的是检查图像是否已下载,如果不是我继续,只需“触摸”我需要的文件并加载webview。 UIWebView打开,但引用的图像不包含任何数据。然后在后台线程中我下载图像并覆盖“虚拟”图像。

这将保存图像和所有内容,但它不会在我当前的UIWebView中重新加载图像。我必须再次回到文章中再看看图像。

有什么方法可以解决这个问题吗?只在UIWebView中重新加载图像?

2 个答案:

答案 0 :(得分:1)

尝试使用javascript重新加载图片。

像这样:

[webView stringByEvaluatingJavaScriptFromString:@"$('img').attr('url','http://123.com/icon.png')"];

答案 1 :(得分:0)

我不知道你是否可以重新加载图像(我猜你不能......但我不确定)

我会尝试使用

重新加载内容
[webView reload];