2

我正在下载多个 html 并将它们作为字符串保存在本地NSArray。然后我使用 3UIWebViews来加载内容。用户总是看到一个UIWebView和两个UIWebViews在后台加载,使用:

[_firstWebView loadHTMLString:nextHtml.body baseURL:nil];

当用户在两者之间移动时,UIWebViews如果他一次移动 2 秒,我仍然可以看到 1-2 秒的缓慢加载UIWebViews时间。我考虑过 5 甚至 7 UIWebViews,但我担心它会严重影响内存使用。

我的另一个想法是将内容保存在本地NSData,然后加载它

[web loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:filePath]]]; 

但我不确定这会给我带来任何改善还是会?

另一个想法是我的应用程序中的某些东西(屏幕上的动画)正在减慢加载时间,所以也许我应该loadHTMLString:nextHtml在不同的线程上?

谢谢

4

1 回答 1

2

最近我做了一些关于在后台将内容加载到 UIWebView 的研究。我发现即使是成功的 loadRequest 也没有效果,而 webview 是不可见的并且没有在某处添加为子视图。

但是,如果我在加载之前对视图进行了一些访问,它就会开始显示在后台加载的内容。

所以我先隐藏视图,然后在其中加载内容,然后再将其显示给用户,使视图再次可见:

在加载方法中:

// make some access to view to reflect content changes
self.webView.hidden = YES;

[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:someurl]]];

当用户切换到 web 视图时:

// make view visible again
self.webView.hidden = NO;

这种方法对我有用。希望它也为您指明正确的方向。

于 2013-03-08T09:45:40.703 回答