7

mac osx ,我想让我的 webview 看起来透明并在其上显示数据,背景显示父视图的图像。

谁能让我知道如何做到这一点?这种方法不能

NSString * source = @"<html><head><title></title></head><body><div id=\"box\">Example Box</div></body></html>";
[[webView mainFrame] loadHTMLString:source baseURL:[NSURL URLWithString:@""] ];
[[webView windowScriptObject] evaluateWebScript:@"document.getElementById('box').style.backgroundColor = '#dddddd';"]; // Change box background
[[webView windowScriptObject] evaluateWebScript:@"document.body.style.backgroundColor = '#dddddd';"]; // Change body background
4

2 回答 2

18

您需要调用setDrawsBackground:WebView传入NO。这将阻止 Web 视图绘制背景,除非 Web 视图中加载的页面明确设置了背景颜色。

于 2012-04-17T01:33:41.500 回答
-1

我们可以使用 cocoa 在 WebView 中添加背景图片。为此,我们需要为 body 标签添加 css。

创建一个网页视图:

WebView *webView;

获取图像表单捆绑路径:

NSString *path = [[NSBundle mainBundle] pathForResource:@"my-bg" ofType:@"jpg"];

为body标签编写CSS。

NSMutableString *htmlBuilder = [[NSMutableString alloc] init];
[htmlBuilder appendString:@"body {"];
[htmlBuilder appendString:[NSString stringWithFormat:@" background-image: url('file://%@');",path]];
[htmlBuilder appendString:@"}"];

在 webview 上加载此图像

[[webView mainFrame] loadHTMLString:htmlBuilder baseURL:nil];
[webView setDrawsBackground:NO];

您的图像将添加到 webview 的背景中。

于 2015-04-09T11:15:11.747 回答