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

问题描述:

我有一个经常检查服务器并将一批文章下载到iphone的应用程序。文章以html格式存储,并使用核心数据进行存储。 一篇文章在页面上有0-n张图片。通过后台线程下载后在UIWebView中重新加载图像

同时下载所有关联的图像,因为文本太慢,占用的带宽太多。用户不可能打开每篇文章。如果他们打开文章,可能会多次打开文章。

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

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

我有一个函数,检查是否已经下载了与该文章相关的图像。如果我只是弹出打开UIWebView - 一切工作正常。

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

我希望文章可以在快照中打开并下载打开文章的图像。

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

这将保存图像和一切,但它不会重新加载我当前的UIWebView中的图像。我必须重新回到文章中才能看到图像。

有没有办法解决这个问题?重新加载一个UIWebView中的图像?

我不知道你是否能重新加载只图像(我猜你不能......但我不知道)

我会尝试重新装入

[webView reload]; 
内容
+0

我希望能够避免重新加载整个页面。重新加载整个webview将不得不成为最后退出。 – dantastic 2011-02-26 09:38:03

尝试用javascript重新载入图像。

像这样:

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