直到显示视图后才会加载UIWebView内容

时间:2012-01-25 13:19:53

标签: iphone objective-c uiview uiwebview uikit

我有一个UIViewviewDidLoad创建并显示UIWebView。在视图实际出现之前,Web视图实际上并未显示其内容。导航栏在其动画过程中随视图一起显示,但在动画结束后的第二秒就会填充Web视图。如何在动画开始之前使Web视图加载内容。这是我的代码,谢谢:

-(void)viewDidLoad
{
    [super viewDidLoad];

    self.title = @"Help";
    NSString *html = @"my html contents goes here, all local and all within a string - does contain one BG image though";

    UIWebView *webView = [[UIWebView alloc] initWithFrame:_webFrame];
    NSString *path = [[NSBundle mainBundle] bundlePath];
    NSURL *baseURL = [NSURL fileURLWithpath:path];

    [webView loadHTMLString:html baseURL:baseURL];
    [self.view addSubView:webView];
    [webView release];
}

2 个答案:

答案 0 :(得分:0)

我认为UIWebView需要一些时间来初始化,因为它使用了WebKit引擎。 您可以尝试在实际推送新的viewcontroller之前添加一个简单的超时,或者在推送期间显示一个占位符'动画。

答案 1 :(得分:0)

据我所知,UIWebView必须在屏幕上才能加载和渲染。 我会尝试以下方法:

  1. 在主叫视图控制器上创建并添加Web视图。
  2. 以一种只在屏幕上显示一个像素的方式设置网页视图的框架。
  3. 加载HTML内容。
  4. 推送到新的ViewController,从旧父视图中删除Web视图并添加到新的视图。
  5. 可能有用,但是真的不值得麻烦,为什么不尝试通过添加加载指示符或占位符文本来“解决”这个问题呢?