表单中的选择器在 SwiftUI 中领先 Space

Picker in Form Leaves Leading Space in SwiftUI

我正在尝试在表单内的 WheelStyle 中显示 PickerView。它工作正常,但我想查看一些领先的 ​​space。

这是我的代码。

struct FormTest: View {
    
    var aryStrings = ["Male","Female"]
    
    @State var selected:String = ""
        
    var body: some View {
        Form {
            Section {
                VStack {
                    HStack {
                        Text("Gender")
                        Spacer()
                    }.padding()
                    
                    HStack {
                        Picker(selection: self.$selected, label: Text("")) {
                            ForEach(self.aryStrings, id:\.self) { value in
                                Text(value)
                            }
                        }.pickerStyle(WheelPickerStyle())
                    }
                }.listRowInsets(EdgeInsets())
            }
        }
    }
} 

这里我们可以看到有一个前导 space 被标记为红色。我希望它是全尺寸选择器。

任何帮助将不胜感激。

虽然这在 iOS14 中不是问题:

在iOS13中,picker不能拉伸宽度。所以你需要做这样的事情:

HStack {
    Spacer()
    Picker(selection: self.$selected, label: EmptyView()) {
        ForEach(self.aryStrings, id:\.self) { Text([=10=]) }
    }
    .pickerStyle(WheelPickerStyle())
    .fixedSize()
    Spacer()
}

结果会是这样的:

我假设您正在寻找这个(使用 Xcode 11.7 / iOS 13.7 测试)

var body: some View {
    Form {
        Section {
            VStack {
                HStack {
                    Text("Gender")
                    Spacer()
                }.padding()

                Picker(selection: self.$selected, label: Text("")) {
                     ForEach(self.aryStrings, id:\.self) { value in
                          Text(value)
                     }
                }.pickerStyle(WheelPickerStyle())
                .labelsHidden()                    // << main part !!
            }
        }
    }
}