Neue Views in SwiftUI – Teil 3

Label

Mit Label erhält SwiftUI in Xcode 12 eine neue praktische View, die sich aus einem Bild und einem Text zusammensetzt. Es mag so gesehen keine sonderlich aufregende neue SwiftUI-View sein. Sie übernimmt aber eine Rolle, die sicher viele App-Entwickler bereits bis heute oft hätten gut gebrauchen können.

Die Einfachheit des Labels

Denn der große Vorteil von Label liegt in seiner Einfachheit (wie bei so vielen Dingen in SwiftUI). Letztlich gibt man bei der Initialisierung eines Label zwei Informationen an:

  1. Den Text des Labels.
  2. Das Image des Labels.

Im einfachsten Fall nutzt man so einen String und den Verweis auf eine SF-Symbols-Grafik, um ein Label zu erzeugen:

Label("Book", systemImage: "book.fill")

Ein Label setzt sich schlicht aus einem Text und einer zugehörigen Grafik zusammen.
Ein Label setzt sich schlicht aus einem Text und einer zugehörigen Grafik zusammen.

Neben SF Symbols-Grafiken lassen sich auch eigene Bilder aus Asset Catalogs im Zusammenspiel mit Label einsetzen. Die View bringt zu diesem Zweck passende Initializer mit, die statt eines systemImage-Parameters einen image-Parameter erwarten.

Flexibilität

Wer besonders kreativ sein möchte, hat auch die Chance, ganz eigene Views sowohl für den Text als auch die Grafik eines Labels zurück zu liefern. Dazu kommt der Initializer init(title:icon:) zum Einsatz, ein Beispiel zu dessen Anwendung findet ihr im folgenden Listing.

Label {
    Text("Thomas")
        .font(.body)
        .foregroundColor(.primary)
    Text("Sillmann")
        .font(.subheadline)
        .foregroundColor(.secondary)
} icon: {
    Circle()
        .fill(Color.blue)
        .frame(width: 44, height: 44)
}
Labels lassen sich auch aufwendig anpassen.
Labels lassen sich auch aufwendig anpassen.

Styling

Auf Wunsch könnt ihr die sichtbaren Komponenten eines Labels auch anpassen. Dazu nutzt ihr den labelStyle(_:)-Modifier und übergebt eine Instanz von einem der folgenden Typen:

  • TitleOnlyLabelStyle: Nur der Titel des Labels wird angezeigt.
  • IconOnlyLabelStyle: Nur die Grafik eines Labels wird angezeigt.

Eine beispielhafte Anwendung des labelStyle(_:)-Modifiers findet ihr im folgenden Listing:

Label("Book", systemImage: "book.fill")
    .labelStyle(IconOnlyLabelStyle())

Fazit

Label mag kein weltbewegendes neues View-Element in SwiftUI sein. Es ist nichtsdestotrotz eine sehr gelungene Ergänzung und erleichtert das Entwicklerleben an vielen Stellen. Schließlich ist ein Zusammenspiel von Grafik und Text etwas, das man als Entwickler bisweilen häufig und an vielen Stellen benötigt.

Euer Thomas


Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert