Passen Sie die Ansicht mit dem Ansichtsmodifikator in der Swift-Benutzeroberfläche an

Einführung

Es ist möglich, in SwiftUI einen benutzerdefinierten Modifikator für die Ansicht "ViewModifier" zu erstellen. Mit "ViewModifier" können Sie die Ansicht von SwiftUI im Allgemeinen anpassen. Dieses Mal werde ich einen solchen `View Modifier zusammenfassen.

Informationen zu ViewModifier

Es ist ein "Protokoll", um die Funktion zum Anpassen und Zurückgeben der Ansicht zu implementieren, indem sie auf die Ansicht angewendet wird. Die im ViewModifier-Protokoll definierten Funktionen sind wie folgt.

func body(content: Self.Content) -> Self.Body

Die Ansicht wird in dieser Funktion aktualisiert oder konvertiert und zurückgegeben. content ist der Proxy der Ansicht, um sich zu qualifizieren. Self.Body wird durch zugeordneten Typ definiert, und der Typ der Ansicht, der an den Konvertierungsprozess von View zurückgegeben werden soll, wird hier beschrieben.

Verwenden Sie ViewModifier

Erstellen wir einen benutzerdefinierten Modifikator, um eine einfache Ansicht in eine kartenartige Ansicht zu konvertieren. Es ist einfach, eine benutzerdefinierte Modifikatorstruktur zu erstellen, einen Wert auf "content" anzuwenden, der das Argument von "body (content :)" ist, und ihn zurückzugeben. Wenden Sie danach den mit erstellten Modifikator auf die Ansicht an, die Sie anwenden möchten.

struct CardModifier: ViewModifier {
    func body(content: Content) -> some View {
        content
            .padding(16)
            .background(Color.white)
            .cornerRadius(10)
            .shadow(radius: 5)
    }
}

struct ContentView: View {
    var body: some View {
        VStack {
            // .modifier(_:)、 ModifiedContent(content:modifier:)Beides ist anwendbar.
            Text("Hello, world!")
                .modifier(CardModifier())
            ModifiedContent(content: Text("Hello, world!"),
                            modifier: CardModifier())
        }
    }
}

Aus diesem Grund werden die im benutzerdefinierten Modifikator beschriebenen Änderungen wie folgt auf die entsprechende Ansicht angewendet. スクリーンショット 2020-09-30 21.45.42.png

abschließend

Mit "ViewModifier" können Sie das Layout definieren, das im Allgemeinen auf mehrere Ansichten angewendet werden soll. Da SwiftUI das Layout in einer Methodenkette beschreibt, verschlechtert sich die Lesbarkeit, wenn beim Definieren desselben Layouts dieselben Prozesse in solider Schrift angeordnet werden. Um den Code sauber zu halten, ist es meiner Meinung nach besser, die Ansichten mit demselben Layout mit einem benutzerdefinierten Modifikator zusammenzustellen.

Verweise

Recommended Posts

Passen Sie die Ansicht mit dem Ansichtsmodifikator in der Swift-Benutzeroberfläche an
Beginnend mit Swift Swift UI
Fotobibliothek mit Swift UI
Implementierung von Seitenmenüs in der Swift-Benutzeroberfläche
(Für Anfänger) Swift UI View Element Collection
Ich habe versucht, Realm mit Swift UI zu verwenden
Schnelle UI 100 klopft
Implementierungsnotiz für SKStoreReviewController in der Swift-Benutzeroberfläche von iOS14
Übergang zu einem View Controller mit Swift WebKit
So implementieren Sie UICollectionView mit Code nur in Swift
[Swift] Farbe in den Benutzerstandards mit der Swift-Benutzeroberfläche speichern (Hinweis)
Teilen wird in Swift zu 0
Erste Schritte mit Swift
Mehrdimensionales Array in Swift
Passen Sie Registerkarten mit Animation an
Liste der Geräte, die mit Swift UI in der Vorschau angezeigt werden können
So ändern Sie die Hintergrundfarbe der Navigationsleiste usw. in der Swift-Benutzeroberfläche