Xamarin Forms Цвет текста в строке состояния iOS
Я не могу изменить цвет текста в строке состояния моего приложения XAMAIN Forms iOS на белый. Я изменил свой info.plist следующим образом:
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
Тем не менее цвет по-прежнему остается черным. Есть ли другой способ изменить цвет текста в строке состояния?
Ответы
Ответ 1
В Xamarin.Forms есть три вещи, которые необходимо сделать, чтобы получить белый текст в строке состояния iOS. Я также разместил пример приложения Xamarin.Forms, которое использует белый текст в строке состояния iOS.
1. Обновите Info.plist
В Info.plist
добавьте View controller-based status bar appearance
Boolean Property View controller-based status bar appearance
и установите для нее значение No
![enter image description here]()
2. Используйте NavigationPage и установите цвет текста панели навигации на белый
В классе Application
(обычно App.cs
) MainPage
должен быть NavigationPage
, а для BarTextColor
должно быть установлено значение Color.White
![enter image description here]()
3. Очистить и восстановить приложение
Иногда компилятор не обновляет цвет строки состояния, пока вы не очистите и не перестроите приложение, поэтому после внесения изменений в шагах 1 и 2 очистите приложение и перестройте его. ![enter image description here]()
Образец приложения
https://github.com/brminnick/SaveImageToDatabaseSampleApp/
Ответ 2
Единственный способ изменить строку состояния в IOS для меня - использовать этот код в FinishedLaunching в AppDelegate
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init ();
LoadApplication (.....);
app.SetStatusBarStyle(UIStatusBarStyle.LightContent, true);
return base.FinishedLaunching (app, options);
}
Ответ 3
Выберите NavigationBar
и измените свойство Style
на Black
.
![введите описание изображения здесь]()
Ответ 4
Итак, что я сделал для изменения цвета строки состояния и цвета строки состояния:
Info.plist
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>UIStatusBarHidden</key>
<true/>
AppDelegate
Внутри функции FinishedLaunching() добавьте код ниже:
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
}
App.xaml
Я добавил код ниже, чтобы изменить цвет текста строки состояния на Белый.
<Style TargetType="{x:Type NavigationPage}">
<!--<Setter Property="BarBackgroundColor" Value="Black" />-->
<Setter Property="BarTextColor" Value="White" />
</Style>