如何使用 UIVisualEffectView 正确模糊 UIView?
How do I correctly blur a UIView using a UIVisualEffectView?
因此,当我单击按钮时,我有一个以模态方式显示的表单。这是它的样子。
我想模糊您在上图中看到的灰色区域。我的初始设置是:我有一个名为 backgroundView 的 UIView,还有另一个名为 addIncomeFormView 的 UIView。
这是初始的 Storyboard 布局。 (我相信 addIncomeFormView 是 backgroundView 的子视图。)
在我的 Cocoa 文件中,我这样做了。
@IBOutlet var backgroundView: UIView! {
didSet {
backgroundView.backgroundColor = UIColor.black.withAlphaComponent(0.6)
let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.dark)
let blurEffectView = UIVisualEffectView(effect: blurEffect)
blurEffectView.frame = backgroundView.bounds
blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
backgroundView.addSubview(blurEffectView)
}
}
这样做的结果是,当我点击按钮时,我得到了这个。
如何让 addIncomeFormView (UIView) 不模糊,或者换句话说,让它位于模糊的 UIView 之上?
尝试更改此行:backgroundView.addSubview(blurEffectView)
为此:backgroundView.insertSubview(blurEffectView, at: 0)
添加后尝试将模糊视图发送到后面
backgroundView.sendSubviewToBack(blurEffectView)
因此,当我单击按钮时,我有一个以模态方式显示的表单。这是它的样子。
我想模糊您在上图中看到的灰色区域。我的初始设置是:我有一个名为 backgroundView 的 UIView,还有另一个名为 addIncomeFormView 的 UIView。 这是初始的 Storyboard 布局。 (我相信 addIncomeFormView 是 backgroundView 的子视图。)
在我的 Cocoa 文件中,我这样做了。
@IBOutlet var backgroundView: UIView! {
didSet {
backgroundView.backgroundColor = UIColor.black.withAlphaComponent(0.6)
let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.dark)
let blurEffectView = UIVisualEffectView(effect: blurEffect)
blurEffectView.frame = backgroundView.bounds
blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
backgroundView.addSubview(blurEffectView)
}
}
这样做的结果是,当我点击按钮时,我得到了这个。
如何让 addIncomeFormView (UIView) 不模糊,或者换句话说,让它位于模糊的 UIView 之上?
尝试更改此行:backgroundView.addSubview(blurEffectView)
为此:backgroundView.insertSubview(blurEffectView, at: 0)
添加后尝试将模糊视图发送到后面
backgroundView.sendSubviewToBack(blurEffectView)