Modalità colore testo barra di navigazione in iOS

Questa piattaforma specifica controlla se il colore del testo della barra di stato su un NavigationPage oggetto viene regolato in modo che corrisponda alla luminosità della barra di spostamento. Viene utilizzata in XAML impostando la NavigationPage.StatusBarTextColorMode proprietà associata su un valore dell'enumerazione StatusBarTextColorMode :

<FlyoutPage xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
    x:Class="PlatformSpecifics.iOSStatusBarTextColorModePage">
    <FlyoutPage.Flyout>
        <ContentPage Title="Flyout Page Title" />
    </FlyoutPage.Flyout>
    <FlyoutPage.Detail>
        <NavigationPage BarBackgroundColor="Blue" BarTextColor="White"
                        ios:NavigationPage.StatusBarTextColorMode="MatchNavigationBarTextLuminosity">
            <x:Arguments>
                <ContentPage>
                    <Label Text="Slide the master page to see the status bar text color mode change." />
                </ContentPage>
            </x:Arguments>
        </NavigationPage>
    </FlyoutPage.Detail>
</FlyoutPage>

In alternativa, può essere usato da C# usando l'API Fluent:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...

IsPresentedChanged += (sender, e) =>
{
    var flyoutPage = sender as FlyoutPage;
    if (flyoutPage.IsPresented)
        ((Xamarin.Forms.NavigationPage)flyoutPage.Detail)
          .On<iOS>()
          .SetStatusBarTextColorMode(StatusBarTextColorMode.DoNotAdjust);
    else
        ((Xamarin.Forms.NavigationPage)flyoutPage.Detail)
          .On<iOS>()
          .SetStatusBarTextColorMode(StatusBarTextColorMode.MatchNavigationBarTextLuminosity);
};

Il NavigationPage.On<iOS> metodo specifica che questa piattaforma verrà eseguita solo in iOS. Il NavigationPage.SetStatusBarTextColorMode metodo, nello Xamarin.Forms.PlatformConfiguration.iOSSpecific spazio dei nomi , controlla se il colore del testo della barra di stato su NavigationPage viene regolato in modo che corrisponda alla luminosità della barra di spostamento, con l'enumerazione StatusBarTextColorMode che fornisce due valori possibili:

  • DoNotAdjust – indica che il colore del testo della barra di stato non deve essere regolato.
  • MatchNavigationBarTextLuminosity – indica che il colore del testo della barra di stato deve corrispondere alla luminosità della barra di spostamento.

Inoltre, il GetStatusBarTextColorMode metodo può essere usato per recuperare il valore corrente dell'enumerazione StatusBarTextColorMode applicata a NavigationPage.

Il risultato è che il colore del testo della barra di stato su un NavigationPage può essere regolato in modo che corrisponda alla luminosità della barra di spostamento. In questo esempio il colore del testo della barra di stato cambia quando l'utente passa tra le Flyout pagine e Detail di un FlyoutPageoggetto :

Modalità colore testo barra di stato Specifica della piattaforma