在UIWebView上显示背景图像

时间:2010-07-23 09:23:52

标签: iphone html uiwebview

我正在尝试构建一个本机应用程序,其目的和目的是HTML / CSS和Javascript。一切正常,但是当UIWebView加载时,填充DOM时会出现延迟,检索图像等。

无论如何在UIWebView上显示背景图像,或者背后的东西?理想情况下,它与启动画面相同,因此不会影响从斜杠转换为应用程序的体验。

由于

罗比

4 个答案:

答案 0 :(得分:30)

我必须在我的代码中执行以下操作才能在UIWebViews上获得透明背景 - 我通常在UIViewController的viewDidLoad方法中执行此操作

self.webView.backgroundColor = [UIColor clearColor];
self.webView.opaque = NO;

我认为您也可以在UIWebViews属性中的Interface Builder中进行这些更改。

---编辑---

对于背景图像,您可以将UIImageView放在UIWebView后面,因为您已经为它提供了透明背景。

答案 1 :(得分:8)

 webView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"senthil.jpg"]];

答案 2 :(得分:3)

我不相信您希望将UIWebView设置为透明并在其后面显示图像。

相反,你应该有一些视图(可能有一个你建议的图片,可能有一个UIIndicator和半透明的视图,使页面“变暗”),直到UIWebView加载了它的内容。

要做到这一点,首先你的类应该订阅UIWebViewDelegate协议:

@interface myWebView : UIViewController <UIWebViewDelegate> {
  // variables etc
}

然后,您可以在加载时显示视图:

-(void)viewDidLoad {
  myView.hidden = NO;
}

最后,你可以覆盖webViewDidFinishLoad方法,一旦加载就隐藏它

- (void)webViewDidFinishLoad:(UIWebView *)localwebView {
    myView.hidden = YES;
}

答案 3 :(得分:1)

将图像添加到XIB中的视图控制器或“启动图像”的Plist。这将显示从Beginning开始的启动画面。在viewDidLoad中加载webView时隐藏webView

webView.hidden = YES;

在viewDidLoad

中照常加载带有HTML内容的webView

加载webView后,执行一些更新后的视图。我认为这将允许一些时间来完成委托功能并继续进行UI更新。

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    [self performSelector:@selector(updateWebView) withObject:nil afterDelay:1];
}

-(void) updateWebView {
    webView.hidden = NO;
    self.view = webViewElement;
    // or
    [self.view addSubview:webViewElement];
}

我尝试上面的工作正常,没有白屏。