ios - UIViewController模糊背景变成灰色

标签 ios swift uiviewcontroller blur uiblureffect

我想为我的 View Controller 使用模糊背景,但一旦加载 View ,整个东西就会变成灰色。

我通过从另一个 View 执行 Segue 来呈现 View Controller ,并在 View Controller 的 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

如何为我的 View Controller 实现模糊背景?

我使用 XCode 9.3、Swift 4.1

谢谢

最佳答案

展示你的 View Controller 并从你的初始VC中设置它的modalPresentationStyle:

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

或者,如果您正在准备继续:

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

并在 viewDidLoad()NewViewController 类中添加您的代码。

关于ios - UIViewController模糊背景变成灰色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52495899/

相关文章:

ios - 从返回 NSArray 的 Swift 覆盖 Obj-C 类方法

ios - 隐藏带有 subview 引用的父 View

ios - Swift 中的滑动页面转换

iphone - 如何激活后台应用程序以与附近的另一个设备提供 TCP/IP 流服务?

ios - 如何在 swift 3 中将 NsArraym 设置为 NSString

swift - 点的坐标 - ios-charts [Swift]

objective-c - iOS - 崩溃自定义 View

ios - 缩小弹出窗口的内容大小时防止伪影

objective-c - 使用UIWebView调用Upload方法

ios - WebP 格式的图像并不总是在 iOS 上显示