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:
- Konfigurieren von Anzeigeoptionen in Info.plist
- Festlegen von Steuerelementstilen über die
UIAppearance
API
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).
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:
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ß:
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:
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:
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:
Weitere Steuermöglichkeiten
Für viele iOS-Benutzeroberflächensteuerelemente können die Standardfarben und andere Attribute mithilfe der UIAppearance
API festgelegt werden.