Translucidez de la barra NavigationPage en iOS
Esta característica específica de la plataforma iOS se usa para cambiar la transparencia de la barra de navegación en un objeto NavigationPage
y se consume en XAML estableciendo la propiedad adjunta NavigationPage.IsNavigationBarTranslucent
en un valor boolean
:
<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 método NavigationPage.On<iOS>
especifica que esta plataforma específica solo se ejecutará en iOS. El método NavigationPage.EnableTranslucentNavigationBar
, en el espacio de nombres Xamarin.Forms.PlatformConfiguration.iOSSpecific
, se usa para hacer translúcida la barra de navegación. Además, la clase NavigationPage
del espacio de nombres Xamarin.Forms.PlatformConfiguration.iOSSpecific
también tiene un método DisableTranslucentNavigationBar
que restaura la barra de navegación a su estado predeterminado, y un método SetIsNavigationBarTranslucent
que se puede usar para alternar la transparencia de la barra de navegación llamando al método IsNavigationBarTranslucent
:
(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: