UIView没有覆盖状态栏区域

时间:2018-03-30 22:45:15

标签: ios swift xcode uiview statusbar

我正在以编程方式创建一个汉堡包菜单。

我试图让侧面菜单(灰色UIView)覆盖状态栏区域,当它滑出时,UIView具有与屏幕大小相关的约束。

我在手势开始时隐藏状态栏alpha但由于某种原因,状态栏的背景仍为纯白色。见下面的例子:

left screen, menu bar hidden - right screen, menu bar visible

是否有可能将UIView覆盖在这个区域?

侧栏的代码:

let screenHeight = UIScreen.main.bounds.height
let screenWidth = UIScreen.main.bounds.width

var sideBarUIView: UIView! = {
        let sideBarUIView = UIView()
        sideBarUIView.backgroundColor = UIColor(red:1.0, green:1.0, blue:0.21, alpha:0.0)
        sideBarUIView.translatesAutoresizingMaskIntoConstraints = false
        return sideBarUIView
    }()

 override func viewDidLoad() {
        super.viewDidLoad()

        view.addSubview(sideBarUIView)
}

        sideBarUIView.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
        sideBarUIView.heightAnchor.constraint(equalToConstant: screenHeight).isActive = true
        sideBarUIView.widthAnchor.constraint(equalToConstant: screenWidth).isActive = true

我正在使用此行隐藏状态栏:

self.statusBarWindow?.alpha = 0.0

1 个答案:

答案 0 :(得分:1)

你可以试试这个

class ViewController: UIViewController {

    let screenHeight = UIScreen.main.bounds.height
    let screenWidth = UIScreen.main.bounds.width

    lazy var sideBarUIView: UIView! = {
        let sideBarUIView = UIView()
        sideBarUIView.backgroundColor = UIColor.red
        sideBarUIView.translatesAutoresizingMaskIntoConstraints = false
        return sideBarUIView
    }()

    override func viewDidLoad() {
        super.viewDidLoad()

        view.addSubview(sideBarUIView)

        sideBarUIView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
        sideBarUIView.heightAnchor.constraint(equalToConstant: screenHeight).isActive = true
        sideBarUIView.widthAnchor.constraint(equalTo: self.view.widthAnchor, multiplier: 0.5).isActive = true
        sideBarUIView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true


    }

}
相关问题