0

我目前正在为支持 iOS 5.0 及更高版本的 iPhone 开发一个应用程序。该应用程序本质上是一个基于信息的应用程序,它使用类似于 Path 和 Facebook 的滑动视图控制器。将新视图推入堆栈的表视图。我选择在 UIWebView 中显示一些内容,该 UIWebView 从捆绑包本地加载许多 HTML 文件,主要是因为信息是静态的,并且它允许我非常容易地设置样式。

我是怎么做的没有什么特别的。发送视图控制器根据在表视图中选择的 indexPath.row 传递必要的 HTML 文件的名称。Webview 填充在 viewDidLoad 方法中,如下所示:

[_detailsWebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource: _htmlFile ofType:@"html"] isDirectory:NO]]];

该应用程序支持 iOS 5 及更高版本,这意味着我正在寻找 iPod touch 第 3 代和第 4 代、iPhone 3GS、iPhone 4 和 4S 以及 iPhone 5 和新的 iPod touch。在 iPhone 5 上,UIWebView 加载本地 HTML 文件,正如您所期望的那样快速,但在旧设备上填充它时会有延迟。

有没有办法在显示 ViewController 的 viewDidLoad 方法之前预加载 HTML 文件?

4

2 回答 2

0

制作一个您想要预加载 HTML 文件的方法,即 ViewController

-(void)loadHTMLFiles:(NSString*)htmlFile
{
    //I assume u have set IBOutlet of detailsWebView 
   [_detailsWebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:htmlFile ofType:@"html"] isDirectory:NO]]];
}

现在在推送你的 newView 即 ViewController 之后:

 [ViewController *objViewController = [ViewController alloc]init];
 //here newView is pushed in navigation or add SubView
[objViewController loadHTMLFiles:yourHTMLFileName];
于 2012-10-02T11:31:49.570 回答
0

我怀疑如果您只是将文件读入 NSData 对象,然后释放该对象,那将有很大帮助。这个想法是将文件加载到文件系统缓存中,因此当 Web 视图想要读取它们时它们已经存在。首先尝试它,因为它是最容易做的事情。

于 2012-10-02T11:32:18.073 回答