没有标签的SwiftUI Picker视图

时间:2020-08-21 09:50:47

标签: ios swiftui

编辑:我尝试在窗体外部使用WheelWickerStyle,但是我想要的是相同的想法,实际选项而不是标签,而是列表。就像在我的表单示例中一样,它非常完美,除了它有一个我必须单击以到达那里的标签。

我有一个带有按钮的应用程序,该按钮可将我重定向到这样的另一个视图:

Button(action: {
                        self.isAddDrinkView.toggle()
                    }) {
                        Image(systemName: "plus.circle")
                            .resizable()
                            .aspectRatio(contentMode: .fit)
                            .frame(width: 100, height: 100, alignment: .center)
                            .foregroundColor(.black)
                            .padding(.bottom, 50.0)
                    }

现在,另一个视图应该是一个列表,您可以从中选择一个元素,并且只能选择一个元素。

我试图这样做:

struct AddDrinkView: View {
    @ObservedObject var context: Context
    var body: some View {
        NavigationView{
            Form{
            Picker(selection: $context.selectedItems, label: Text("Select a drink"), content: {
                ForEach(context.items){
                    Text("\($0)")
                }
            }).pickerStyle(DefaultPickerStyle())
            .navigationBarTitle("Select a Drink")
            }.labelsHidden()
        }
    }
}

但是,我的问题是,这向我显示了一个带有选择器和隐藏标签的视图。我根本不需要此标签,我希望选择器选项在进入此视图时立即显示,而无需单击标签。

我该如何实现?这适用于ios 13+ 另一个可能的选择是,如果我能以某种方式使第一个按钮成为选择器选项视图的触发器,但我仍然不知道该如何实现。

1 个答案:

答案 0 :(得分:0)

通过Form呈现默认样式的选择器。尝试改用WheelPickerStyle

Picker(selection: $context.selectedItems, label: Text("Select a drink"), content: {
    ForEach(context.items){
        Text("\($0)")
    }
}).pickerStyle(WheelPickerStyle())      // << here !!