Xamarin.Forms iOS NavigationPage 的状态栏颜色

Xamarin.Forms iOS statusbar color with NavigationPage

我正在 Xamarin.Forms 中构建应用程序,在 iOS 应用程序上,我希望状态栏颜色为白色。这是我目前所拥有的:

App.cs

public App()
{
    NavigationPage _navigationPage = new NavigationPage(new RootPage());

    MainPage = _navigationPage;
}

您可以使用以下方法全局设置状态栏颜色,而不是使用自定义渲染器:

在您的 info.plist 中添加以下 属性 和值:

  • 属性: UIViewControllerBasedStatusBarAppearance
  • 类型:boolean
  • 值:No

用这行代码更新 iOS 项目中的 AppDelegate.cs

UIApplication.SharedApplication.SetStatusBarStyle (UIStatusBarStyle.LightContent, false);

在最近的 Xamarin 更新后,您现在可以通过设置 BarTextColor属性、

来执行此操作

_navigationPage.SetValue(NavigationPage.BarTextColorProperty, Color.White);

然而,就像在 中一样,您仍然需要将以下内容添加到您的 Info.plist

  • 属性: UIViewControllerBasedStatusBarAppearance
  • 类型:boolean
  • 值:No

全局更改 ios

的状态栏文本颜色和背景颜色

在 App.xaml.cs 中:

var page = new NavigationPage(new MainPage()) { BarTextColor = Color.White };

在 Info.plist 中:

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

并更改背景颜色 在 AppDelegate.cs => override bool FinishedLaunching(...):

var statusBar = UIApplication.SharedApplication.ValueForKey(new NSString("statusBar")) as UIView;
     if (statusBar.RespondsToSelector(new ObjCRuntime.Selector("setBackgroundColor:")))
     {
         statusBar.BackgroundColor = UIColor.Black;
     }

并在每个页面上设置 padding top = 20