Press "Enter" to skip to content

SwiftUI: Erstellen eines eigenen Edit-Buttons

Im Zuge meiner aktuellen Let’s Code-Reihe auf YouTube entwickelte ich vor kurzem einen eigenen Edit-Button in SwiftUI. Dieser Button hat eine vergleichbare Aufgabe wie die View EditButton aus dem SwiftUI-Framework. Allerdings ist EditButton nicht sonderlich flexibel. Möchte ich beispielsweise einen alternativen Text oder gar Grafiken für den Button verwenden, muss man zu einer eigens kreierten Lösung greifen.

Wie auch ihr eure eigenen Edit-Buttons in SwiftUI erstellen könnt, erläutere ich im Folgenden.

Die Basis: das Environment

Mit die wichtigste Rolle bei einem eigenen Edit-Button auf Basis von SwiftUI spielt das Environment, genauer gesagt der Wert für den Key-Path editMode. Der liefert uns in Form eines Bindings Zugriff auf eine Instanz vom Typ EditMode. Und diese Instanz ist entscheidend! Sie informiert uns einerseits darüber, ob gerade der Edit-Mode einer View aktiv ist oder nicht. Diese Information können wir über die boolesche Property isEditing von EditMode auslesen.

Zum anderen nutzen wir diese EditMode-Instanz, um aktiv und programmatisch eine Änderung des Edit-Modes herbei zu führen. Schließlich soll unser eigener Edit-Button den Edit-Mode ja auch sowohl aktivieren als auch deaktivieren können.

Das Binding, das man über das Environment und den Schlüssel editMode erhält, ist ein Optional. Um darauf zugreifen zu können, muss man es also entpacken.

Im folgenden Listing seht ihr einmal, wie sich anhand der genannten Informationen ein eigener Edit-Button auf Basis von SwiftUI umsetzen lässt. Die Hilfs-Property isEditing dient dazu, auszulesen, ob aktuell der Edit-Mode aktiv ist oder nicht. Diese Information nutze ich bei der Gestaltung des Buttons, um abhängig davon eine andere SF-Symbols Grafik darzustellen; pencil.circle.fill für einen aktiven Edit-Mode, pencil.circle für einen inaktiven.

Bei Betätigung des Buttons invertiere ich den momentanen Zustand des Edit-Mode und weise ihn den Wert des Environment-Bindings zu.

Fazit

Einen eigenen Edit-Button auf Basis von SwiftUI zu erstellen ist erfreulich simpel. Am wichtigsten ist der Zugriff auf das Environment, um in Erfahrung zu bringen, ob der Edit-Mode gerade aktiv ist oder nicht. Außerdem nutzt man das Environment, um den Status des Edit-Mode programmatisch zu überschreiben und ihn so selbst zu aktiveren beziehungsweise zu deaktivieren.

Euer Thomas

Schreibe einen Kommentar

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

Impressum

Thomas Sillmann
Kettererstraße 6
D-63739 Aschaffenburg
E-Mail: contact@thomassillmann.de
Mobil: +49 (0) 151 65125650
Web: https://www.thomassillmann.de/

Inhaltlich Verantwortlicher gemäß §55 Abs. 2 RStV: Thomas Sillmann (Anschrift siehe oben)

Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehme ich keine Haftung für die Inhalte externer Links. Für die Inhalte der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.

Kontakt und soziale Netzwerke

Copyright © 2020 · Thomas Sillmann