在应用程序启动时,如何使用UIWebView加载和预渲染ViewController?

时间:2011-05-20 08:42:35

标签: ios uiwebview

我正在开发一个具有一系列分层UITableViewControllers的应用程序,直到您最终被带到包含您正在寻找的信息的UIWebView。它工作得很好,除了当UIWebView加载时,它需要一段时间来渲染并在加载前闪烁白色(我的所有视图,包括UITableViewControllers和HTML文件,都有黑色背景)

一旦UIWebView被加载并显示它就不是一个问题 - 我加载了一个带有黑色背景的空HTML页面,同时加载了内容 - 但是它第一次总是很慢,并且给了我白色闪光。

我尝试通过初始化并在前一个UITableViewController仍处于活动状态时加载它来预渲染UIWebView,但它似乎不起作用。它允许我定义所有必要的参数,但是调用loadView方法,或者我尝试过的任何其他方法,都会把它搞砸到实际加载黑色背景HTML,然后再将UIWebView推到屏幕上。

理想情况下,我希望它只是在应用程序启动后在后台初始化UIWebView,这样当它被推到导航堆栈上供用户查看时,它已预先加载了黑色背景所以没有白色闪光。

2 个答案:

答案 0 :(得分:0)

webview.backgroundColor = [UIColor blackColor];怎么样?

答案 1 :(得分:0)

你找到并回答了这个问题。我也在做同样的事情。我发现我可以创建第二个webview并开始在屏幕上填充它。我使用javascript检查进度,以便我知道它已经渲染。然而,在我有两个页面渲染(一个可见,一个没有)之后大约3秒,它会导致网页崩溃。

我的下一个想法是让两个屏幕都显示在距离右边一英里的大部分未使用的屏幕上,以便最终用户看不到它。