【发布时间】:2018-05-06 15:07:47
【问题描述】:
我正在使用以下代码对视图(使用 Swift 4.1、Xcode 9.3)实现模糊效果:
myXib - 加载 nib 视图并添加模糊子视图
func setup() {
// load xib view
Bundle.main.loadNibNamed("myXib", owner: self, options: nil)
self.view.frame = bounds
self.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
self.addSubview(self.view)
// create blur effect
let blurEffect = UIBlurEffect(style: .light)
let blurEffectView = UIVisualEffectView(effect: blurEffect)
blurEffectView.frame = blurView.bounds
blurView.translatesAutoresizingMaskIntoConstraints = false
blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
blurView.insertSubview(blurEffectView, at: 0)
isBlurShowing = true
}
我使用一个调用 show() 或 hide() 函数的简单切换按钮。
func hide() {
blurView.isHidden = true
blurView.alpha = 0
isBlurShowing = false
}
func show() {
blurView.isHidden = false
blurView.alpha = 1
isBlurShowing = true
}
myXib 示例如下所示:
其中灰色区域为blurView(一般设置为Clear Color,此处仅设置为灰色用于描述目的。)
对于 blurView 下但 在 Xib 内部的视图(橙色), hide() 函数正常工作,但对于 在 Xib 视图下 的视图(蓝色)模糊效果依旧。
开启模糊 (.isHidden = false, .alpha = 1)
关闭模糊 ((.isHidden = true, .alpha = 0)
关闭时模糊效果会减弱,但仍然存在。 我做错了什么?
提前致谢。
【问题讨论】: