UIViewController模糊背景变成灰色
UIViewController blur background turns into gray
我想为我的视图控制器使用模糊背景,但是一旦加载视图,整个背景就会变成灰色。
我通过从另一个视图执行 segue 来呈现视图控制器,并且在视图控制器的 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),
])
}
这是它的样子
如何为我的视图控制器实现模糊背景?
我用XCode9.3,Swift4.1
谢谢
展示你的视图控制器并设置它的 modalPresentationStyle
从你的初始 vc:
let newController = NewViewController()
newController.modalPresentationStyle = .overCurrentContext
present(newController, animated: true, completion: nil)
或者,如果您正在为 segue 做准备:
let newController: NewViewController = segue.destination as! NewViewController
newController.modalPresentationStyle = .overCurrentContext
并在 NewViewController
class 中 viewDidLoad()
添加您的代码。
我想为我的视图控制器使用模糊背景,但是一旦加载视图,整个背景就会变成灰色。
我通过从另一个视图执行 segue 来呈现视图控制器,并且在视图控制器的 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),
])
}
这是它的样子
如何为我的视图控制器实现模糊背景?
我用XCode9.3,Swift4.1
谢谢
展示你的视图控制器并设置它的 modalPresentationStyle
从你的初始 vc:
let newController = NewViewController()
newController.modalPresentationStyle = .overCurrentContext
present(newController, animated: true, completion: nil)
或者,如果您正在为 segue 做准备:
let newController: NewViewController = segue.destination as! NewViewController
newController.modalPresentationStyle = .overCurrentContext
并在 NewViewController
class 中 viewDidLoad()
添加您的代码。