我正在尝试构建一个本机应用程序,其目的和目的是HTML / CSS和Javascript。一切正常,但是当UIWebView加载时,填充DOM时会出现延迟,检索图像等。
无论如何在UIWebView上显示背景图像,或者背后的东西?理想情况下,它与启动画面相同,因此不会影响从斜杠转换为应用程序的体验。
由于
罗比
答案 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];
}
我尝试上面的工作正常,没有白屏。