Partilhar via


Guia de layout de área segura no iOS

Esse específico da plataforma iOS é usado para garantir que o conteúdo da página seja posicionado em uma área da tela segura para todos os dispositivos que usam o iOS 11 e superior. Especificamente, ajudará a garantir que o conteúdo não seja cortado por cantos arredondados do dispositivo, pelo indicador de casa ou pela caixa do sensor em um iPhone X. Ele é consumido em XAML definindo a propriedade anexada Page.UseSafeArea como um boolean valor:

<ContentPage ...
             xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
             Title="Safe Area"
             ios:Page.UseSafeArea="true">
    <StackLayout>
        ...
    </StackLayout>
</ContentPage>

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

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

On<iOS>().SetUseSafeArea(true);

O método Page.On<iOS> especifica que essa plataforma específica só será executada no iOS. O Page.SetUseSafeArea método, no namespace, controla Xamarin.Forms.PlatformConfiguration.iOSSpecific se o guia de layout de área segura está habilitado.

O resultado é que o conteúdo da página pode ser posicionado em uma área da tela que seja segura para todos os iPhones:

Guia do Layout da Área de Segurança

Observação

A área segura definida pela Apple é usada para Xamarin.Forms definir a Page.Padding propriedade e substituirá todos os valores anteriores dessa propriedade que foram definidos.

A área segura pode ser personalizada recuperando seu Thickness valor com o Page.SafeAreaInsets método do Xamarin.Forms.PlatformConfiguration.iOSSpecific namespace. Em seguida, ele pode ser modificado conforme necessário e reatribuído à Padding propriedade na OnAppearing substituição:

protected override void OnAppearing()
{
    base.OnAppearing();

    var safeInsets = On<iOS>().SafeAreaInsets();
    safeInsets.Left = 20;
    Padding = safeInsets;
}