Personnaliser la vue avec le modificateur de vue dans l'interface utilisateur Swift

introduction

Il est possible de créer un modificateur personnalisé pour View appelé ViewModifier dans SwiftUI. En utilisant ViewModifier, vous pouvez personnaliser la vue de SwiftUI en général. Cette fois, je vais résumer un tel `View Modifier.

À propos de ViewModifier

C'est un protocole pour implémenter la fonction de personnalisation et de retour de la vue en l'appliquant à la vue. Les fonctions définies dans le "protocole ViewModifier" sont les suivantes.

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

La vue est mise à jour ou convertie dans cette fonction et renvoyée. content est le proxy de la vue à qualifier. Self.Body est défini par ʻassociated type`, et le type de View à renvoyer au processus de conversion de View est décrit ici.

Utiliser ViewModifier

Créons un modificateur personnalisé pour convertir une vue simple en une vue de type carte. C'est simple à faire, créer une structure de modificateur personnalisée, appliquer une valeur à content, qui est l'argument de body (content :), et le renvoyer. Ensuite, appliquez le modificateur créé avec à la vue que vous souhaitez appliquer.

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:)L'un ou l'autre est applicable.
            Text("Hello, world!")
                .modifier(CardModifier())
            ModifiedContent(content: Text("Hello, world!"),
                            modifier: CardModifier())
        }
    }
}

En raison de ce qui précède, les modifications décrites dans le modificateur personnalisé seront appliquées à la vue correspondante comme suit. スクリーンショット 2020-09-30 21.45.42.png

en conclusion

En utilisant ViewModifier, vous pouvez définir la disposition à appliquer à plusieurs vues en général. Puisque SwiftUI décrit la disposition dans une chaîne de méthodes, lors de la définition de la même disposition, si tous les mêmes processus sont alignés en écriture solide, la lisibilité se détériorera. Afin de garder le code propre, je pense qu'il est préférable de rassembler les vues avec la même disposition avec un modificateur personnalisé.

Références

Recommended Posts

Personnaliser la vue avec le modificateur de vue dans l'interface utilisateur Swift
À partir de Swift Swift UI
Photothèque avec Swift UI
Implémentation des menus latéraux dans Swift UI
(Pour les débutants) Collection d'éléments de vue Swift UI
J'ai essayé d'utiliser Realm avec Swift UI
Swift UI 100 coups
Mémo d'implémentation SKStoreReviewController dans l'interface utilisateur Swift d'iOS14
Transition vers un contrôleur de vue avec Swift WebKit
Comment implémenter UICollectionView avec du code uniquement dans Swift
[Swift] Enregistrer la couleur aux valeurs par défaut de l'utilisateur avec l'interface utilisateur Swift (Remarque)
Divide devient 0 dans Swift
Premiers pas avec Swift
Tableau multidimensionnel dans Swift
Personnaliser les onglets avec une animation
Liste des appareils pouvant être prévisualisés avec Swift UI
Comment changer la couleur d'arrière-plan de la barre de navigation, etc. dans Swift UI