自定义UINavigationBar状态栏不包括背景图像

时间:2018-05-05 06:47:22

标签: swift uiimage uinavigationbar swift4.1

我正在尝试为function timectrl() { var mytime = document.getElementById("ora").value; var reduced = mytime.split(":").slice(0,2) .reduce(function(ac,d,i){ return ac+= i ? +d : 60*(d%12) },0); if( Math.max(0,Math.min(30,reduced)) !== reduced ){ return } var sommaora = new Date(); var initialtime = "<?= $_POST['oraini'] ?>"; var finaltime = "<?= $_POST['orafine'] ?>"; ..... 设置背景图片,但状态栏始终为白色

结果

enter image description here

我的代码

UINavigationBar

预期结果图像背景填充包括状态栏

enter image description here

2 个答案:

答案 0 :(得分:0)

只需在您需要更改状态栏外观的viewController内集成以下功能。

func setStatusBarBackgroundColor(color: UIColor) {
    guard let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView else { return }
    statusBar.backgroundColor = color
}

使用:self.setStatusBarBackgroundColor(color: yourColor

您可以使用公共viewController将此应用于整个应用,并将此viewController设置为其他viewController的子类,通过使用此方法您不需要编写这段代码。

答案 1 :(得分:0)

你可以这样做

 self.navigationController?.setNavBarImage(UIImage(named: "NavigationBar"))
  

在像这样使用的ViewController中

display: none !important;
  

结果

enter image description here