3
votes

SwiftUI - Centrer le contenu sur une liste

Comment puis-je placer cette flèche au centre de la liste?

struct ProductsList : View {
var body: some View {

    VStack {
        List {
            Image(systemName: "shift")


        }

    }
}

}

 entrez la description de l'image ici p >


0 commentaires

3 Réponses :


6
votes

Essayez ceci:

var body: some View {
    List {
        GeometryReader { geometry in
            VStack(alignment: .center) {
                Image(systemName: "shift")
            }.frame(width: geometry.size.width)
        }
    }
}


0 commentaires

12
votes

Vous voudrez peut-être simplement utiliser des espaceurs.

struct ProductsList : View {
    var body: some View {
        VStack {
            List {
                HStack {
                   Spacer()
                   Image(systemName: "shift")
                   Spacer()
                } 
            }
        }
    }
}


0 commentaires

3
votes

Je suggère d'utiliser ViewModifier:

struct ExampleList: View {
    var body: some View {
        List {
            Image(systemName: "shift").modifier(CenterModifier())
            SomeOtherView().modifier(CenterModifier())
        }
    }
}

de sorte que dans votre liste, si vous avez des types d'éléments d'interface utilisateur plus différents, il est plus pratique de le faire:

struct CenterModifier: ViewModifier {
    func body(content: Content) -> some View {
        HStack {
            Spacer()
            content
            Spacer()
        }
    }
} 


0 commentaires