在UIWebView上显示背景图像

问题描述:

我试图构建一个本地应用程序,所有意图和目的都是HTML/CSS和Javascript。这一切工作正常,但是当UIWebView加载时,DOM填充时出现延迟,图像检索等。在UIWebView上显示背景图像

有无论如何在UIWebView或其后面显示背景图像吗?理想情况下,这与启动画面相同,因此不会影响从斜杠切换到应用程序的体验。

感谢

罗比

我不相信你想要将UIWebView设置为透明并显示背后的图像。

相反,你应该有一些视图(可能带有一个图片,你可能会用UIIndicator和一个半透明的视图来“加深”页面),直到UIWebView加载它的内容为止。

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

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

然后,您就可以在负载的观点:

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

最后,您可以覆盖webViewDidFinishLoad隐藏它的方法

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

在加载和呈现HTML和CSS时,是否会为UIWebView等类似事件触发适当的事件?类似于jQuery的$(document).ready()等价物?我一定会试试这个,谢谢。 – Robbie 2010-07-25 07:57:38

+0

是的,jQuery等价物是一个很好的比较。 – h4xxr 2010-07-26 22:02:53

我不得不这样做在我的代码让我的UIWebViews中的一个透明的背景下 - 我通常做这的UIViewController中

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

我想你也可以在UIWebViews属性中的Interface Builder中进行这些更改。

---编辑---

而对于背景图片你可以把一个UIImageView在UIWebView的后面,现在你给它一个透明的背景。

+0

iOS4为所有视图提供了.backgroundView的一个新属性,它不需要将.backgroundColor设置为clearColor,然后将图像放在它后面。然而,我不同意添加一个背景图片(网页将逐渐加载*的顶部*)是正确的方法在这里... – h4xxr 2010-07-23 09:40:04

+0

因此,这当然有效,我有不同的景观加载的一些问题,但这是我需要学习无论如何。 – Robbie 2010-07-25 07:54:09

+0

完美的解决方案! – iwill 2012-03-22 03:55:58

在XIB中添加图像到视图控制器或“启动图像”的Plist。这将显示从开始的闪屏。当装载在viewDidLoad中web视图隐藏web视图

webView.hidden = YES; 

负载与viewDidLoad中

一旦web视图被加载HTML内容照常web视图,执行更新后的一些视图。我认为这将允许一些时间让委托功能完成并继续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]; 
} 

我试图与上述工作正常,无白色屏幕。

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

任何原因没有得到任何投票?它对我来说非常有效。唯一的细节是,你必须取消选中“不透明”复选框,它就像一个魅力。 – 2012-10-21 06:35:46