UIVisualEffects、UIWebView 透明背景
Posted
技术标签:
【中文标题】UIVisualEffects、UIWebView 透明背景【英文标题】:UIVisualEffects, UIWebView transparent background 【发布时间】:2017-03-08 12:11:43 【问题描述】:我正在使用 Cordova 构建 ios 应用程序。 我希望我的 webview 是透明的,并且在它后面是用户壁纸的模糊背景。喜欢 ios 提醒应用。
我知道这是一个常见问题,但我没有找到具体的回复
有可能吗?
在我的 viewDidLoad 方法中,我添加了以下几行:
- (void)viewDidLoad
[super viewDidLoad];
self.view.backgroundColor = [UIColor clearColor];
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
blurEffectView.frame = self.view.bounds;
blurEffectView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
//This line places a dark black background with my app being blurred behind it
[self.view addSubview:blurEffectView];
//This line instead just makes background of app plain black (the body of html app is transparent) and not blurred , I guess there is something wrong with view hierarchy maybe?
[self.view addSubview:self.webView];
[self.webView setOpaque:NO];
[self.webView setBackgroundColor:[UIColor clearColor]];
提前致谢
【问题讨论】:
【参考方案1】:设置webview背景颜色和不透明度的顺序应该是这样的
[self.webView setBackgroundColor:[UIColor clearColor]];
[self.webView setOpaque:NO];
【讨论】:
以上是关于UIVisualEffects、UIWebView 透明背景的主要内容,如果未能解决你的问题,请参考以下文章
调整 UIWebView 框架大小时如何禁用 UIWebView 调整内容大小
如何在 UIWebView 上显示覆盖而不阻止用户与 UIWebView 的交互