2012-04-17 83 views
7

mac osx,我想使我的webview看起來透明,並顯示其上的數據與背景顯示父視圖的圖像。cocoa:如何使背景透明的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 
+1

好吧,首先,您將網頁視圖中的頁面背景顏色設置爲不透明的顏色。那不行,是嗎? – 2012-04-17 01:31:55

回答

16

你需要呼籲WebViewsetDrawsBackground:並傳遞NO。這將阻止Web視圖繪製背景,除非Web視圖中加載的頁面明確設置背景顏色。

+0

非常感謝 – 2012-04-17 01:42:07

-1

我們可以使用cocoa在WebView中添加背景圖像。爲此,我們需要爲body標籤添加css。

創建網頁視圖:

WebView *webView; 

抓取圖像形式束路徑:對身體標記

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

寫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]; 

您的圖片會在網頁視圖背景加入這一形象。