Swift 4 中的 statusBarStyle

statusBarStyle in Swift 4

这是我在 AppDelegate 中写的代码 class (Swift 4):

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
     UIApplication.shared.statusBarStyle = .lightContent
    goToRootViewController()
    UINavigationBar.appearance().isTranslucent = true

    UINavigationBar.appearance().shadowImage = UIImage()
    UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .default)
    GMSServices.provideAPIKey(googleMapApiKey)
    return true
}

但是我的状态栏没有显示浅色内容我不知道发生了什么,有帮助吗?

您是否更改了 info.plist 行 查看 controller-based 状态栏外观 并将其设置为否? 因为这是更改状态栏外观所必需的

而且如果您只想更改特定视图控制器上的状态栏,那么您可以使用

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

具体 ViewController Class:

在您的 viewcontroller class 中使用下面的代码 viewDidLoad() :

override var preferredStatusBarStyle : UIStatusBarStyle {
    return .lightContent
}

这将以浅色内容显示您的状态栏

对于整个应用程序:

在您的产品 Info.plist

中设置值为“NO”的“查看 controller-based 状态栏外观”键

然后在“didFinishLaunchingWithOptions”中的 AppDelegate.Swift 中使用以下代码:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    
    UIApplication.shared.statusBarStyle = .lightContent
    return true
}

Select 您投影并导航到 Target -> General -> Deployment Info。其中 Status Bar StyleDefault,将其更改为 Light

在您的特定控制器的 didLoad 中使用以下代码

UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];

    if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {

        statusBar.backgroundColor = [self colorWithHexString:@"C2BFAB"];//set whatever color you like
       // appDel.statusBarColor = NO;
    }

Setter for 'statusBarStyle' was deprecated in iOS 9.0: Use -[UIViewController preferredStatusBarStyle]

在 AppDelegate 函数 -didFinishLaunchingWithOptions 下手动设置 UIApplication.shared.statusBarStyle = .lightContent 似乎不起作用

首先在文件中设置Info.plist

<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>

第二个:

Target -> General -> Deployment Info

Status Bar Style设置为Light