UIViewController模糊背景变成灰色

时间:2018-09-25 10:23:27

标签: ios swift uiviewcontroller blur uiblureffect

我想为我的视图控制器使用模糊背景,但是一旦视图被加载,整个东西就会变成灰色。

我通过从另一个视图执行搜索来呈现视图控制器,并且在视图控制器的viewDidLoad()方法中,我实现了如下所示的模糊效果

override func viewDidLoad() {
    super.viewDidLoad()

    view.backgroundColor = UIColor.clear

    let blurBgView = UIVisualEffectView(effect: UIBlurEffect(style: .extraLight))
    blurBgView.translatesAutoresizingMaskIntoConstraints = false

    view.insertSubview(blurBgView, at: 0)

    NSLayoutConstraint.activate([
        blurBgView.heightAnchor.constraint(equalTo: view.heightAnchor),
        blurBgView.widthAnchor.constraint(equalTo: view.widthAnchor),
        ])
}

这是它的样子

enter image description here

如何为视图控制器实现模糊背景?

我使用XCode 9.3,Swift 4.1

谢谢

1 个答案:

答案 0 :(得分:1)

呈现您的视图控制器,并从初始vc设置其modalPresentationStyle

let newController = NewViewController()
newController.modalPresentationStyle = .overCurrentContext
present(newController, animated: true, completion: nil)

或者,如果您正在准备segue:

let newController: NewViewController = segue.destination as! NewViewController
newController.modalPresentationStyle = .overCurrentContext

然后在NewViewController的{​​{1}}类中添加您的代码。