UIVisualEffectView 在 UIWebView 之上不工作
UIVisualEffectView not working above UIWebView
我在myView
里面有一个UIVisualEffectView
。 myView
可以在屏幕上拖动。此外,在 ViewController.
中有一个图像和一个 UIWebView
在图像上方一切正常,但是当我将 myView
拖到 UIWebView
上方时,模糊效果不再起作用,myView
看起来就像是浅灰色背景并且是透明的。
[来自真实 iPad Air 的结果,iOS 9.2.1]
工作(UIImage
以上)
不工作(以上UIWebView
)
这就是我创建模糊效果的方式:
let blurView = UIVisualEffectView(effect: UIBlurEffect(style: .ExtraLight))
blurView.frame.size = CGSizeMake(navView.frame.width, navView.frame.height)
blurView.layer.cornerRadius = navView.layer.cornerRadius
blurView.clipsToBounds = true
let vibrancyView = UIVisualEffectView()
vibrancyView.frame = blurView.frame
vibrancyView.effect = UIVibrancyEffect(forBlurEffect: blurView.effect as! UIBlurEffect)
vibrancyView.layer.cornerRadius = blurView.layer.cornerRadius
blurView.contentView.addSubview(vibrancyView)
vibrancyView.contentView.addSubview(left)
vibrancyView.contentView.addSubview(right)
myView.addSubview(blurView)
知道为什么会这样吗?
提前致谢!
添加这个并尝试
myView.bringSubviewToFront(blurView)
或使用
blurView.superview.bringSubviewToFront(blurView)
更新
变量创建
@IBOutlet var webview: UIWebView!
代码
let blurView = UIVisualEffectView(effect: UIBlurEffect(style: .ExtraLight))
blurView.frame.size = CGSizeMake(200, 200)
blurView.layer.cornerRadius = 25
blurView.clipsToBounds = true
let vibrancyView = UIVisualEffectView()
vibrancyView.frame = blurView.frame
vibrancyView.effect = UIVibrancyEffect(forBlurEffect: blurView.effect as! UIBlurEffect)
vibrancyView.layer.cornerRadius = blurView.layer.cornerRadius
blurView.contentView.addSubview(vibrancyView)
// vibrancyView.contentView.addSubview(left)
//vibrancyView.contentView.addSubview(right)
webview.addSubview(blurView)
let myURL = NSURL(string: "http://www.swiftdeveloperblog.com");
let myURLRequest:NSURLRequest = NSURLRequest(URL: myURL!);
webview.loadRequest(myURLRequest);
我添加了 Sample project
试试这个
self.view.sendSubviewToBack(UIWebView)
我在myView
里面有一个UIVisualEffectView
。 myView
可以在屏幕上拖动。此外,在 ViewController.
中有一个图像和一个 UIWebView
在图像上方一切正常,但是当我将 myView
拖到 UIWebView
上方时,模糊效果不再起作用,myView
看起来就像是浅灰色背景并且是透明的。
[来自真实 iPad Air 的结果,iOS 9.2.1]
工作(UIImage
以上)
不工作(以上UIWebView
)
这就是我创建模糊效果的方式:
let blurView = UIVisualEffectView(effect: UIBlurEffect(style: .ExtraLight))
blurView.frame.size = CGSizeMake(navView.frame.width, navView.frame.height)
blurView.layer.cornerRadius = navView.layer.cornerRadius
blurView.clipsToBounds = true
let vibrancyView = UIVisualEffectView()
vibrancyView.frame = blurView.frame
vibrancyView.effect = UIVibrancyEffect(forBlurEffect: blurView.effect as! UIBlurEffect)
vibrancyView.layer.cornerRadius = blurView.layer.cornerRadius
blurView.contentView.addSubview(vibrancyView)
vibrancyView.contentView.addSubview(left)
vibrancyView.contentView.addSubview(right)
myView.addSubview(blurView)
知道为什么会这样吗?
提前致谢!
添加这个并尝试
myView.bringSubviewToFront(blurView)
或使用
blurView.superview.bringSubviewToFront(blurView)
更新
变量创建
@IBOutlet var webview: UIWebView!
代码
let blurView = UIVisualEffectView(effect: UIBlurEffect(style: .ExtraLight))
blurView.frame.size = CGSizeMake(200, 200)
blurView.layer.cornerRadius = 25
blurView.clipsToBounds = true
let vibrancyView = UIVisualEffectView()
vibrancyView.frame = blurView.frame
vibrancyView.effect = UIVibrancyEffect(forBlurEffect: blurView.effect as! UIBlurEffect)
vibrancyView.layer.cornerRadius = blurView.layer.cornerRadius
blurView.contentView.addSubview(vibrancyView)
// vibrancyView.contentView.addSubview(left)
//vibrancyView.contentView.addSubview(right)
webview.addSubview(blurView)
let myURL = NSURL(string: "http://www.swiftdeveloperblog.com");
let myURLRequest:NSURLRequest = NSURLRequest(URL: myURL!);
webview.loadRequest(myURLRequest);
我添加了 Sample project
试试这个
self.view.sendSubviewToBack(UIWebView)