Guia de layout de área segura no iOS
Essa plataforma iOS específica é usada para garantir que o conteúdo da página esteja posicionado em uma área da tela que seja segura para todos os dispositivos que usam o iOS 11 e superior. Especificamente, ele ajudará a garantir que o conteúdo não seja recortado por cantos arredondados do dispositivo, pelo indicador doméstico ou pela caixa do sensor em um iPhone X. Ele é consumido em XAML definindo a Page.UseSafeArea
propriedade anexada 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 Page.On<iOS>
método especifica que esse específico da plataforma só será executado no iOS. O Page.SetUseSafeArea
método, no Xamarin.Forms.PlatformConfiguration.iOSSpecific
namespace , controla 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 segura para todos os iPhones:
Observação
A área segura definida pela Apple é usada no Xamarin.Forms para definir a propriedade e substituirá todos os Page.Padding
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 reatribuido à Padding
propriedade na substituição OnAppearing
:
protected override void OnAppearing()
{
base.OnAppearing();
var safeInsets = On<iOS>().SafeAreaInsets();
safeInsets.Left = 20;
Padding = safeInsets;
}