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 的交互

UIWebview 删除填充/边距

在 xib 上更改小部件的类? (将 UIWebView 更改为我自己的 UIWebView 类别)

UIWebView 正在请求位置权限

iOS小技能:UIWebView 被拒的解决方案(用更安全的WKWebView替代UIWebView)