Leitfaden für das Layout für sichere Bereiche unter iOS
Diese plattformspezifische iOS-Plattform wird verwendet, um sicherzustellen, dass Seiteninhalte auf einem Bereich des Bildschirms positioniert werden, der für alle Geräte sicher ist, die iOS 11 und höher verwenden. Insbesondere wird es helfen, sicherzustellen, dass Inhalte nicht durch abgerundete Geräteecke, die Heimanzeige oder das Sensorgehäuse auf einem iPhone X abgeschnitten werden. Sie wird in XAML genutzt, indem Sie die Page.UseSafeArea
angefügte Eigenschaft auf einen boolean
Wert festlegen:
<ContentPage ...
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
Title="Safe Area"
ios:Page.UseSafeArea="true">
<StackLayout>
...
</StackLayout>
</ContentPage>
Alternativ kann sie mit der Fluent-API von C# genutzt werden:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
On<iOS>().SetUseSafeArea(true);
Die Methode Page.On<iOS>
gibt an, dass diese plattformspezifische Funktion nur unter iOS ausführbar ist. Die Page.SetUseSafeArea
Methode steuert im Xamarin.Forms.PlatformConfiguration.iOSSpecific
Namespace, ob das Layouthandbuch für sichere Bereiche aktiviert ist.
Das Ergebnis ist, dass Seiteninhalte in einem Bereich des Bildschirms positioniert werden können, der für alle iPhones sicher ist:
Hinweis
Der von Apple definierte sichere Bereich wird verwendet Xamarin.Forms , um die Page.Padding
Eigenschaft festzulegen, und überschreibt alle vorherigen Werte dieser Eigenschaft, die festgelegt wurden.
Der sichere Bereich kann angepasst werden, indem er seinen Thickness
Wert mit der Page.SafeAreaInsets
Methode aus dem Xamarin.Forms.PlatformConfiguration.iOSSpecific
Namespace abruft. Sie kann dann nach Bedarf geändert und der Eigenschaft in der Padding
OnAppearing
Außerkraftsetzung erneut zugewiesen werden:
protected override void OnAppearing()
{
base.OnAppearing();
var safeInsets = On<iOS>().SafeAreaInsets();
safeInsets.Left = 20;
Padding = safeInsets;
}