小编典典

如何在 iOS 中更改状态栏文本颜色

all

我的应用程序有深色背景,但在 iOS 7
中,状态栏变得透明。所以我在那里什么都看不到,只有角落里的绿色电池指示灯。如何将状态栏文本颜色更改为白色,就像在主屏幕上一样?


阅读 192

收藏
2022-02-28

共1个答案

小编典典

  1. 在 .plist 文件中设置为UIViewControllerBasedStatusBarAppearanceYES

  2. viewDidLoad做一个[self setNeedsStatusBarAppearanceUpdate];

  3. 添加以下方法:

    - (UIStatusBarStyle)preferredStatusBarStyle
    

    {
    return UIStatusBarStyleLightContent;
    }

注意
:这不适用于内部的控制器UINavigationController

Swift 3 - 这将在内部工作控制器UINavigationController。在您的控制器中添加此代码。

// Preferred status bar style lightContent to use on dark background.
// Swift 3
override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

Swift 5 和 SwiftUI

为 SwiftUI 创建一个新的 swift 文件,名为HostingController.swift

import Foundation
import UIKit
import SwiftUI

class HostingController: UIHostingController<ContentView> {
    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }
}

然后更改以下代码行SceneDelegate.swift

window.rootViewController = UIHostingController(rootView: ContentView())

window.rootViewController = HostingController(rootView: ContentView())
2022-02-28