2017-06-06 67 views
1

我有一個UIViewController,只顯示一個UIView在具有固定高度的底部:UIViewController的視圖背景顏色不會改變

fileprivate lazy var box: UIView = { 
    let box = UIView() 
    box.backgroundColor = UIColor.blue 
    return box 
}() 

而且我想明確的顏色設置爲視圖的其餘部分(self.view)。我正在通過導航控制器呈現視圖控制器。我想這樣的:

override func viewDidLoad() { 
    super.viewDidLoad() 

    view.backgroundColor = UIColor.clear 
    view.isOpaque = false 

    configView() 
    configConstraints() 
} 

子視圖顯示爲藍色,但視圖的其餘部分是不透明的白色,我需要它是透明的,看以前的viewController的視圖。

我可以錯過什麼?

回答

0

要有透明的模型視圖控制器背景,您必須在呈現視圖控制器時設置UIViewControllerprovidesPresentationContextTransitionStyledefinesPresentationContext屬性。

if let vc = self.storyboard?.instantiateViewController(withIdentifier: "YOUR_VIEW_CONTROLLER_ID") { 
    vc.providesPresentationContextTransitionStyle = true 
    vc.definesPresentationContext = true 
    vc.modalPresentationStyle=UIModalPresentationStyle.overCurrentContext 
    self.present(vc, animated: true, completion: nil) 
}