51 votes

Comment supprimer les séparateurs/diviseurs « lignes » d'une liste dans SwiftUI ?

J'essaie de supprimer les séparateurs de "lignes" (appelés diviseurs dans SwiftUI) d'un List dans SwiftUI.

J'ai parcouru la documentation List , mais je n'ai pas pu trouver de modificateur pour cela.

Toute aide serait appréciée.

14voto

Moumen Alisawe Points 2443

Versions iOS 13 uniquement

pendant que cette solution fonctionne correctement, nettoyons le travail en utilisant ViewModifier

 public struct ListSeparatorStyleNoneModifier: ViewModifier {
    public func body(content: Content) -> some View {
        content.onAppear {
            UITableView.appearance().separatorStyle = .none
        }.onDisappear {
            UITableView.appearance().separatorStyle = .singleLine
        }
    }
}

faisons maintenant une petite extension qui aiderait à masquer les détails

 extension View {
    public func listSeparatorStyleNone() -> some View {
        modifier(ListSeparatorStyleNoneModifier())
    }
}

Comme vous pouvez le voir, nous avons enveloppé notre code de paramètre d'apparence dans un petit modificateur de vue soigné. vous pouvez le déclarer directement maintenant

 List {
    Text("1")
    Text("2")
    Text("3")
}.listSeparatorStyleNone()

10voto

Rico Crescenzio Points 2187

Vous pouvez utiliser ForEach dans un ScrollView au lieu de List pour des vues dynamiques sans aucun style

6voto

Masanao Imai Points 107

Versions iOS 13 uniquement :

Ajout de UITableView.appearance().separatorColor = .clear pour l'initialiseur

 struct SomeView: View {
  init() {
        UITableView.appearance().separatorColor = .clear
    }
}

J'espère que vous résoudrez ce problème.

6voto

Matteo Pacini Points 2704

Versions iOS 13 uniquement :

La solution actuelle consiste à les supprimer via UIAppearance :

 UITableView.appearance(whenContainedInInstancesOf: 
    [UIHostingController<ContentView>.self]
).separatorStyle = .none

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X