SwiftUI 如何将完成按钮添加到选择器

abd*_*qgg 4 xcode picker swift5 ios13 swiftui

我制作了一个只有一个按钮和一个选择器的迷你应用程序,其想法是在选择器上方有一个完成按钮,这样一旦我选择了一个值,我就可以按完成,选择器将关闭。

我知道如果您单击“单击我”按钮,它将打开,如果您再次单击它,则会关闭选择器,但我正在寻找一个与选择器一起出现并在单击时与答题器一起消失的按钮。

几乎就像选择器上方带有完成按钮的工具栏

    @State var expand = false
    @State var list = ["value1", "value2", "value3"]
    @State var index = 0

    var body: some View {
       VStack {
            Button(action: {
                self.expand.toggle()
            }) {
                Text("Click me \(list[index])")
            }
            if expand {
                Picker(selection: $list, label: EmptyView()) {
                    ForEach(0 ..< list.count) {
                        Text(self.list[$0]).tag($0)
                    }
                }.labelsHidden()
            }

        }
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述 在此输入图像描述

第三张图片是我想要完成的,前两张是我目前得到的

感谢您的帮助

sim*_*bac 6

将按钮添加到 if 子句:

if expand {
    VStack{
        Button(action:{self.expand = false}){
            Text("Done")
        }
        Picker(selection: $list, label: EmptyView()) {
            ForEach(0 ..< list.count) {
                Text(self.list[$0]).tag($0)
            }
        }.labelsHidden()
    }
}

Run Code Online (Sandbox Code Playgroud)