如何在没有 Nativescript 的 Actionbar 的情况下更改 IOS 中的状态栏颜色?

Jam*_*mer 4 nativescript

如果不需要 ActionBar / NavigationBar,我无法弄清楚如何在 nativescript 中更改 IOS 的状态栏。

我试过了:

var navController = frame.topmost().ios.controller;
let navigationBar = navController.navigationBar;
navigationBar.barStyle = UIBarStyle.Black;
Run Code Online (Sandbox Code Playgroud)

但是当没有 ActionBar 时,这完全失败了!

Jam*_*mer 5

此解决方案有效!

第1步:

将以下内容添加到app/App_Resources/iOS/Info.plist.

<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
Run Code Online (Sandbox Code Playgroud)

它将执行以下操作:

  1. 将初始屏幕和应用程序的默认颜色设置为白色。
  2. 允许您更改应用程序内的状态栏颜色。

第2步:

添加后,您可以使用以下代码段更改状态栏样式颜色:

// white status bar text
UIApplication.sharedApplication.setStatusBarStyleAnimated(UIStatusBarStyle.LightContent, true);
// black status bar text
UIApplication.sharedApplication.setStatusBarStyleAnimated(UIStatusBarStyle.Default, true);
Run Code Online (Sandbox Code Playgroud)

可选但重要的步骤 3:

如果您想在应用程序完成加载(在启动画面之后)或当它变为活动状态时立即更改状态栏,那么您需要在UiApplicationDelegate函数中设置上述代码段。见链接例如:

https://docs.nativescript.org/core-concepts/application-lifecycle#ios-uiapplicationdelegate