Guida al layout dell'area Cassaforte in iOS

Download Sample Scaricare l'esempio

Questo specifico della piattaforma iOS viene usato per garantire che il contenuto della pagina sia posizionato in un'area dello schermo sicura per tutti i dispositivi che usano iOS 11 e versioni successive. In particolare, sarà utile assicurarsi che il contenuto non venga ritagliato da angoli arrotondati del dispositivo, l'indicatore home o l'alloggiamento del sensore su un i Telefono X. Viene utilizzato in XAML impostando la Page.UseSafeArea proprietà associata su un boolean valore:

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

In alternativa, può essere usato da C# usando l'API Fluent:

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

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

Il Page.On<iOS> metodo specifica che questa piattaforma verrà eseguita solo in iOS. Il Page.SetUseSafeArea metodo, nello spazio dei nomi, controlla se la guida al layout dell'area Xamarin.Forms.PlatformConfiguration.iOSSpecific sicura è abilitata.

Il risultato è che il contenuto della pagina può essere posizionato su un'area dello schermo sicura per tutti i Telefono:

Safe Area Layout Guide

Nota

L'area sicura definita da Apple viene usata in Xamarin.Forms per impostare la proprietà ed eseguirà l'override Page.Padding di tutti i valori precedenti di questa proprietà impostata.

L'area sicura può essere personalizzata recuperandone Thickness il valore con il Page.SafeAreaInsets metodo dallo spazio dei Xamarin.Forms.PlatformConfiguration.iOSSpecific nomi . Può quindi essere modificato in base alle esigenze e riassegnare alla Padding proprietà nell'override OnAppearing :

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

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