Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin表单iOS状态栏文本颜色_Ios_Xamarin_Xamarin.ios_Xamarin.forms - Fatal编程技术网

Xamarin表单iOS状态栏文本颜色

Xamarin表单iOS状态栏文本颜色,ios,xamarin,xamarin.ios,xamarin.forms,Ios,Xamarin,Xamarin.ios,Xamarin.forms,我无法将Xamarin Forms iOS应用程序的状态栏文本颜色更改为白色。我的info.plist中有如下更改: <key>UIStatusBarStyle</key> <string>UIStatusBarStyleLightContent</string> <key>UIViewControllerBasedStatusBarAppearance</key> <false/> UIStatusBarSt

我无法将Xamarin Forms iOS应用程序的状态栏文本颜色更改为白色。我的info.plist中有如下更改:

<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
UIStatusBarStyle
UIStatusBarStyleLightContent
UIViewControllerBasedStatusBarAppearance

但是颜色仍然是黑色。。是否有其他方法可以更改状态栏文本的颜色?

在Xamarin.Forms中,要在iOS状态栏中显示白色文本,需要做三件事。我还在下面发布了一个示例Xamarin.Forms应用程序,它在iOS状态栏中使用白色文本

1.更新Info.plist 在
Info.plist
中,添加布尔属性
查看基于控制器的状态栏外观
,并将其值设置为

2.使用NavigationPage&将导航栏文本颜色设置为白色 在
应用程序
类(通常为
App.cs
)中,
主页
必须是
导航页面
,并且
BarTextColor
必须设置为
Color.White

3.清理并重建应用程序 有时,编译器在您清理并重建应用程序之前不会更新状态栏颜色,因此在步骤1和2中进行更改后,请清理并重建应用程序。

示例应用程序

对我来说,在IOS中更改状态栏的唯一方法是在AppDelegate中的FinishedLaunching中使用此代码

public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
    global::Xamarin.Forms.Forms.Init ();

    LoadApplication (.....);
    app.SetStatusBarStyle(UIStatusBarStyle.LightContent, true);

    return base.FinishedLaunching (app, options);
}

选择
导航栏
,并将
样式
属性更改为
黑色


因此,我为更改状态栏颜色和状态栏文本颜色所做的是:

Info.plist

<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<!--<key>UIStatusBarHidden</key>-->
<!--<true/>-->
App.xaml

我在下面添加了将状态栏文本颜色更改为白色的代码



谢谢您的回答!但是现在我没有状态栏了:/噢,不!你介意把这个问题作为StackOverflow的一个新问题问一下并把链接发给我吗?我可以发布一些屏幕截图来帮助你调试这个问题。嘿,给你:谢谢你进入Info.plist的实际值(例如windows用户):UIViewControllerBasedStatusBarAppearance我必须直接更改Info.plist。编辑器中的更改似乎不会影响文件。这可能是Visual Studio for Mac中的错误。此方法已被弃用:@Singapore您必须在info.plist中将“基于视图控制器的状态栏外观”更改为false(如接受的答案所示)。我必须直接更改info.plist。编辑器中的更改似乎不会影响文件。这可能是Visual Studio for Mac中的一个错误。请小心:UIView statusBar=UIApplication.SharedApplication.ValueForKey(新NSString(“statusBar”))作为UIView;导致IOS13(例如iPhone 11)出现异常,请在使用前检查操作系统版本。UIDevice.CurrentDevice.CheckSystemVersion(13,0)
UIView statusBar = UIApplication.SharedApplication.ValueForKey(new NSString("statusBar")) as UIView;
if (statusBar != null && statusBar.RespondsToSelector(new ObjCRuntime.Selector("setBackgroundColor:")))
{
    statusBar.BackgroundColor = Color.FromHex("#7f6550").ToUIColor(); // change to your desired color 
}
<Style TargetType="{x:Type NavigationPage}">
     <!--<Setter Property="BarBackgroundColor" Value="Black" />-->
     <Setter Property="BarTextColor" Value="White" />
</Style>