Hinzufügen einer iOS-spezifischen Formatierung

Eine Möglichkeit zum Festlegen einer iOS-spezifischen Formatierung besteht darin, einen benutzerdefinierten Renderer für ein Steuerelement zu erstellen und plattformspezifische Stile und Farben für jede Plattform festzulegen.

Weitere Optionen zum Steuern der Darstellung Ihrer Xamarin.Forms iOS-App sind:

Diese Alternativen werden unten erläutert.

Anpassen von Info.plist

Mit der Datei Info.plist können Sie einige Aspekte des Rendererings einer iOS-Anwendung konfigurieren, z. B. wie (und ob) die status leiste angezeigt wird.

Im Todo-Beispiel wird beispielsweise der folgende Code verwendet, um die Farbe und die Textfarbe der Navigationsleiste auf allen Plattformen festzulegen:

var nav = new NavigationPage (new TodoListPage ());
nav.BarBackgroundColor = Color.FromHex("91CA47");
nav.BarTextColor = Color.White;

Das Ergebnis wird im folgenden Bildschirmausschnitt angezeigt. Beachten Sie, dass die status Balkenelemente schwarz sind (dies kann nicht innerhalb Xamarin.Forms festgelegt werden, da es sich um ein plattformspezifisches Feature handelt).

Screenshot: iOS-Design mit status Balkenelementen in schwarzem Text

Im Idealfall wäre die status Leiste auch weiß - etwas, das wir direkt im iOS-Projekt erreichen können. Fügen Sie der Info.plist die folgenden Einträge hinzu, um zu erzwingen, dass die status Leiste weiß ist:

iOS Info.plist-Einträge

oder bearbeiten Sie die entsprechende Datei Info.plist direkt, um Folgendes einzuschließen:

<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>

Wenn die App nun ausgeführt wird, ist die Navigationsleiste grün und ihr Text ist weiß (aufgrund Xamarin.Forms der Formatierung), und der status Balkentext ist dank iOS-spezifischer Konfiguration auch weiß:

Screenshot: iOS-Design mit status Balkenelementen in Weißtext

UIAppearance-API

Die UIAppearance API kann verwendet werden, um visuelle Eigenschaften für viele iOS-Steuerelemente festzulegen, ohne einen benutzerdefinierten Renderer erstellen zu müssen.

Das Hinzufügen einer einzelnen Codezeile zur AppDelegate.cs-MethodeFinishedLaunching kann alle Steuerelemente eines bestimmten Typs mithilfe ihrer -Eigenschaft formatieren Appearance . Der folgende Code enthält zwei Beispiele: globales Formatieren der Registerkartenleiste und des Schaltersteuerelements:

AppDelegate.cs im iOS-Projekt

public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
  // tab bar
    UITabBar.Appearance.SelectedImageTintColor = UIColor.FromRGB(0x91, 0xCA, 0x47); // green
  // switch
    UISwitch.Appearance.OnTintColor = UIColor.FromRGB(0x91, 0xCA, 0x47); // green
    // required Xamarin.Forms code
    Forms.Init ();
    LoadApplication (new App ());
    return base.FinishedLaunching (app, options);
}

UITabBar

Standardmäßig wird das ausgewählte Registerkartenleistensymbol in einemTabbedPage wäre blau:

Standardsymbol der iOS-Registerkartenleiste in TabbedPage

Um dieses Verhalten zu ändern, legen Sie die UITabBar.Appearance -Eigenschaft fest:

UITabBar.Appearance.SelectedImageTintColor = UIColor.FromRGB(0x91, 0xCA, 0x47); // green

Dies bewirkt, dass die ausgewählte Registerkarte grün ist:

Grünes iOS-Registerkartenleistensymbol in TabbedPage

Mithilfe dieser API können Sie das Erscheinungsbild von Xamarin.FormsTabbedPage unter iOS mit sehr wenig Code anpassen. Weitere Informationen zur Verwendung eines benutzerdefinierten Renderers zum Festlegen einer bestimmten Schriftart für die Registerkarte finden Sie im Rezept zum Anpassen von Registerkarten .

UISwitch

Das Switch Steuerelement ist ein weiteres Beispiel, das einfach formatiert werden kann:

UISwitch.Appearance.OnTintColor = UIColor.FromRGB(0x91, 0xCA, 0x47); // green

Diese beiden Screenshots zeigen das Standardsteuerelement UISwitch auf der linken Seite und die angepasste Version (Einstellung Appearance) auf der rechten Seite im Todo-Beispiel:

UiSwitch-StandardfarbeAngepasste UISwitch-Farbe

Weitere Steuermöglichkeiten

Für viele iOS-Benutzeroberflächensteuerelemente können die Standardfarben und andere Attribute mithilfe der UIAppearance API festgelegt werden.