我想创建一个UIWebView,其背景为50%透明,但其内容(例如文字、图片等)不透明。这种情况是否可行?谢谢。
webView.alpha=0.5f;
[webView setBackgroundColor:[UIColor clearColor]];
[webView setOpaque:NO];
看起来这是可能的,也许吧。请看这篇博客文章:
http://erikloehfelm.blogspot.com/2009/04/transparent-background-on-iphone.html
使背景半透明取决于能否将网页BODY元素的CSS颜色设置为半透明颜色(而非“透明”)。
此外,如果您没有控制要显示的网页的HTML,则此博客文章不会展示如何实现此操作,但使用UIWebView
可在页面内容加载后以编程方式更改此颜色。
尝试更改 透明 为 任何颜色/透明度,以找到您最喜欢的组合,可以在 webView.backgroundColor
和 html 的 <body>
css 样式中进行修改。以下是使用 loadHTMLString
的示例:
- (void)embedYouTubeWithVideoID:(NSString *)videoID {
webView.backgroundColor = [UIColor clearColor];
CGFloat w = webView.frame.size.width;
CGFloat h = webView.frame.size.height;
NSString *ytUrlString = [NSString stringWithFormat:@"http://www.youtube.com/v/%@&version=3&autohide=1&autoplay=1&cc_load_policy=1&fs=1&hd=1&modestbranding=1&rel=0&showsearch=0", videoID];
NSString *embed = [NSString stringWithFormat:@"\
<html>\
<head>\
<meta name=\"viewport\" content=\"initial-scale = 1.0, user-scalable = no, width = %0.0f\"/>\
</head>\
<body style=\"background:transparent; margin-top:0px; margin-left:0px\">\
<div>\
<object width=\"%0.0f\" height=\"%0.0f\">\
<param name=\"movie\" value=\"%@\" />\
<param name=\"wmode\" value=\"transparent\" />\
<param name=\"allowFullScreen\" value=\"true\" />\
<param name=\"quality\" value=\"high\" />\
<embed src=\"%@\" type=\"application/x-shockwave-flash\" allowfullscreen=\"true\" allowscriptaccess=\"always\" wmode=\"transparent\" width=\"%0.0f\" height=\"%0.0f\" />\
</object>\
</div>\
</body>\
</html>", w, w, h, ytUrlString, ytUrlString, w, h];
[webView loadHTMLString:embed baseURL:nil];
}