Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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, aiuterà a assicurarsi che il contenuto non venga ritagliato da angoli arrotondati del dispositivo, l'indicatore home o l'alloggiamento del sensore in un iPhone 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 iPhone:
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;
}
