ios - 实时更改状态栏颜色

标签 ios swift uiviewcontroller statusbar

我正在带有动画的侧边菜单 View Controller ( ENSwiftSideMenu ) 中移动。由于侧面菜单的背景颜色是深蓝色,我希望状态栏(默认情况下为黑色)在菜单可见时变亮。
info.plist 中将 View controller-based status bar appearance 设置为 YES(也尝试过 NO) ,我尝试实现以下代码,不幸的是,它不起作用:

UIApplication.shared.statusBarStyle = .lightContent

另外,我试过这个:

override func viewDidLoad() {
    super.viewDidLoad()
    setNeedsStatusBarAppearanceUpdate()
}

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .default
}

知道如何让它发挥作用吗?
谢谢!

最佳答案

试试这段代码:

在你的 AppDelegate 中:

     var navigationBarAppearace = UINavigationBar.appearance()
     navigationBarAppearace.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()] // If you want to change title colour
     UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default 

//用下面的代码更新你的plist

     View controller-based status bar appearance = NO

在你的 ViewController 中:

    override func viewDidLoad() {
    super.viewDidLoad()

     // UIApplication.sharedApplication().statusBarStyle = .LightContent
    navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
    navigationController?.navigationBar.shadowImage = UIImage()
    navigationController?.navigationBar.tintColor = UIColor.whiteColor()
    navigationController?.navigationBar.translucent = true
}

func sideMenuWillOpen() {
    print("sideMenuWillOpen")
UIApplication.sharedApplication().statusBarStyle = .LightContent
}

func sideMenuWillClose() {
    print("sideMenuWillClose")
 UIApplication.sharedApplication().statusBarStyle = .Default 
}

enter image description here

上述代码的输出。您可以使用某种 UIAnimation 来同步效果。

让我知道。如果代码适合您...

关于ios - 实时更改状态栏颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40059328/

相关文章:

ios - UICollectionView 位置和分段控制编程错误

iphone - 自定义 NavigationBar 按钮在 iOS 7 中看起来不同

ios - XCFramework 与其他第 3 方依赖项

ios - 使用 NSLayoutContraints 添加第二个 subview Controller ,始终将其放置在导航栏下方,而不是导航栏之后

ios - 在 UITextField 中的安全文本上添加自定义 View 并能够将其删除

ios - 核心数据迁移 - 我们可以在 xcode 中拥有多个 .xcmappingmodel 文件吗?

ios - 用于 CFunctionPointer 到 Swift 闭包的 Objective-C 包装器

swift - UINavigationBar 中的 searchBar isHidden 后获取标题

ios - 需要有关iOS后台执行的帮助

iphone - uitableView,带标签的新 View