Translucencia de la barra NavigationPage en iOS

Descargar ejemploDescargar el ejemplo

Esta plataforma específica de iOS se usa para cambiar la transparencia de la barra de navegación en , NavigationPagey se consume en XAML estableciendo la NavigationPage.IsNavigationBarTranslucent propiedad adjunta en un boolean valor:

<NavigationPage ...
                xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
                BackgroundColor="Blue"
                ios:NavigationPage.IsNavigationBarTranslucent="true">
  ...
</NavigationPage>

Como alternativa, se puede consumir desde C# mediante la API fluida:

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

(App.Current.MainPage as Xamarin.Forms.NavigationPage).BackgroundColor = Color.Blue;
(App.Current.MainPage as Xamarin.Forms.NavigationPage).On<iOS>().EnableTranslucentNavigationBar();

El NavigationPage.On<iOS> método especifica que esta plataforma específica solo se ejecutará en iOS. El NavigationPage.EnableTranslucentNavigationBar método , en el Xamarin.Forms.PlatformConfiguration.iOSSpecific espacio de nombres , se usa para hacer que la barra de navegación translúcida. Además, la NavigationPage clase del Xamarin.Forms.PlatformConfiguration.iOSSpecific espacio de nombres también tiene un DisableTranslucentNavigationBar método que restaura la barra de navegación a su estado predeterminado y un SetIsNavigationBarTranslucent método que se puede usar para alternar la transparencia de la barra de navegación llamando al IsNavigationBarTranslucent método :

(App.Current.MainPage as Xamarin.Forms.NavigationPage)
  .On<iOS>()
  .SetIsNavigationBarTranslucent(!(App.Current.MainPage as Xamarin.Forms.NavigationPage).On<iOS>().IsNavigationBarTranslucent());

El resultado es que se puede cambiar la transparencia de la barra de navegación:

Barra de navegación translúcida específica de la plataforma