SwiftUI:选择器标签文本没有出现,我似乎无法修改它

问题描述 投票:0回答:1

当我创建菜单样式选择器时,我只看到显示的选择器选项,而不是我的标签文本。

这是使用更新的代码: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)
    }

这是我的结果:

预期结果:

未选择:

已选择:

swift swiftui label picker
1个回答
0
投票

正如@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)
}

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.