Xamarion.iOS-statusBar如何更改文本颜色?

问题描述 投票:0回答:1

我有Xamarin Forms应用程序。我不使用NavigationBar:

Xamarin.Forms.NavigationPage.SetHasNavigationBar(this, false);

我需要在iOS的状态栏中更改颜色(背景)和文本颜色。我使用此代码:

if (UIDevice.CurrentDevice.CheckSystemVersion(13, 0))
        {
            UIView statusBar = new UIView(UIApplication.SharedApplication.KeyWindow.WindowScene.StatusBarManager.StatusBarFrame);
            statusBar.BackgroundColor = UIColor.White;
            statusBar.TintColor = UIColor.Black;
            statusBar.AccessibilityIgnoresInvertColors = true;
            statusBar.TintColorDidChange();
            UIApplication.SharedApplication.KeyWindow.AddSubview(statusBar);
        }
        else
        {
            UIView statusBar = UIApplication.SharedApplication.ValueForKey(new NSString("statusBar")) as UIView;
            if (statusBar.RespondsToSelector(new ObjCRuntime.Selector("setBackgroundColor:")))
            {
                statusBar.BackgroundColor = UIColor.White;
                statusBar.TintColor = UIColor.Black;
                UIApplication.SharedApplication.StatusBarStyle = UIStatusBarStyle.BlackOpaque;
            }
        }

并且我将此代码添加到了info.plist中:

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

此后:状态栏背景代码-白色。但是文字颜色是白色(我需要黑色)。有什么建议吗?

ios xamarin.forms xamarin.ios
1个回答
0
投票

此后:状态栏背景代码-白色。但是文字颜色是白色(我需要黑色)。有什么建议吗?

在iOS中,您可以更改UIStatusBarStyle来修改状态栏的文本颜色。共有三种类型的样式,实际上是两种类型的样式。(默认为Dark,与Dark样式相同。)

  • UIStatusBarStyleDefault:用于在浅色背景上使用的深色状态栏。

  • UIStatusBarStyleLightContent:浅色状态栏,旨在在深色背景上使用。

  • UIStatusBarStyleDarkContent:用于在浅色背景上使用的深色状态栏。

如果需要在iOS中设置状态栏的黑色文本颜色,则可以在Info.plist中添加以下键值

<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
//Follow can change text color of status bar
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleDarkContent</string>
© www.soinside.com 2019 - 2024. All rights reserved.