当我创建菜单样式选择器时,我只看到显示的选择器选项,而不是我的标签文本。
这是使用更新的代码:Picker(selection:, content:, label),但在使用已弃用的版本代码时也得到相同的结果:Picker(selection:, label:, content)
这是我的代码:
private var addGenderSection: some View {
VStack(spacing: 20) {
Spacer()
Text("What's your gender?")
.font(.largeTitle)
.fontWeight(.semibold)
.foregroundStyle(.white)
Picker(selection: $gender) {
Text("1").tag(1)
Text("2").tag(2)
} label: {
Text("Select a gender")
.font(.headline)
.foregroundStyle(.purple)
.frame(height: 55)
.frame(maxWidth: .infinity)
.background(Color.white)
}
.pickerStyle(.menu)
Spacer()
Spacer()
}
.padding(30)
}
这是我的结果:
预期结果:
未选择:
已选择:
正如@workingdog所说,在这种情况下,
Menu
是更好的解决方案。
实际上,您无法自定义 pickerStyle(.menu)
外观。试试这个:
private var genders = [1, 2]
@State private var gender: Int?
...
Menu {
Button("\(genders[0])") {
gender = 1
}
Button("\(genders[1])") {
gender = 2
}
} label: {
Text(gender == nil ? "Select a gender" : "Gender is \(gender!)")
.foregroundColor(.purple)
.frame(maxWidth: .infinity)
}
.frame(maxWidth: .infinity)
.background {
Color.white
.frame(height: 55)
.cornerRadius(10)
}