swift:设置状态栏不透明

如果没有隐藏导航栏:

navigationController?.navigationBar.isTranslucent = false

 

如果隐藏了导航栏上面的代码失效,可设置状态栏背景色以达到不透明的效果:

..........

//在要显示界面的时候设置颜色

if let statusViewWindow =  UIApplication.shared.value(forKey: "statusBarWindow") as? UIWindow {

            if let statusView = statusViewWindow.value(forKey: "statusBar") as? UIView {

                

                statusView.backgroundColor = BaseColor

            }

}

..........

//在界面将要消失的时候恢复透明颜色

 

 if let statusViewWindow =  UIApplication.shared.value(forKey: "statusBarWindow") as? UIWindow {

            if let statusView = statusViewWindow.value(forKey: "statusBar") as? UIView {

                

                statusView.backgroundColor = UIColor.clear

            }

}

你可能感兴趣的:(swift:设置状态栏不透明)