SwiftUI-列表中的中心内容

时间:2019-06-20 19:46:47

标签: swiftui xcode11

如何使此箭头位于列表中心?

struct ProductsList : View {
var body: some View {

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


        }

    }
}

}

enter image description here

3 个答案:

答案 0 :(得分:3)

尝试一下:

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

答案 1 :(得分:3)

我建议使用ViewModifier:

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

因此在您的列表中,如果您拥有更多不同类型的UI元素,则这样做更方便:

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

答案 2 :(得分:1)

您可能只想使用一些垫片。

struct ProductsList : View {
var body: some View {

    VStack {
        List {
            HStack {
               Spacer()
               Image(systemName: "shift")
               Spacer()
             }

        }

    }
}
}