如何使用 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)