表单中的选择器在 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 !!
}
}
}
}
我正在尝试在表单内的 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 !!
}
}
}
}