且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2023-01-05 21:15:06

  1. 在 .plist 文件中将 UIViewControllerBasedStatusBarAppearance 设置为 YES.

viewDidLoad中做一个[self setNeedsStatusBarAppearanceUpdate];

添加以下方法:

- (UIStatusBarStyle)preferredStatusBarStyle
{ 
    return UIStatusBarStyleLightContent; 
}

注意:这不适用于 UINavigationController 内部的控制器,请参阅 泰森在下面的评论 :)

Note: This does not work for controllers inside UINavigationController, please see Tyson's comment below :)

Swift 3 - 这将在 UINavigationController 中运行控制器.将此代码添加到您的控制器中.

Swift 3 - This will work controllers inside UINavigationController. Add this code inside your controller.

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

Swift 5 和 SwiftUI

为 SwiftUI 创建一个名为 HostingController.swift

For SwiftUI create a new swift file called 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())