Compartilhar via


Translucidez da barra de navegaçãoPágina no iOS

Esse específico da plataforma iOS é usado para alterar a transparência da barra de navegação em um NavigationPage, e é consumido em XAML definindo a propriedade anexada NavigationPage.IsNavigationBarTranslucent como um boolean valor:

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

Como alternativa, ele pode ser consumido do C# usando a API fluente:

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();

O método NavigationPage.On<iOS> especifica que essa plataforma específica só será executada no iOS. O NavigationPage.EnableTranslucentNavigationBar método, no Xamarin.Forms.PlatformConfiguration.iOSSpecific namespace, é usado para tornar a barra de navegação translúcida. Além disso, a NavigationPage Xamarin.Forms.PlatformConfiguration.iOSSpecific classe no namespace também tem um DisableTranslucentNavigationBar método que restaura a barra de navegação para seu estado padrão e um SetIsNavigationBarTranslucent método que pode ser usado para alternar a transparência da barra de navegação chamando o IsNavigationBarTranslucent método:

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

O resultado é que a transparência da barra de navegação pode ser alterada:

Barra de navegação translúcida específica da plataforma