SwiftUi: выпадающий список
//вариант 1
struct myPicker1: View {
@State private var varD = 1
var body: some View {
Picker( selection: $varD,label: Text("Список")) {
HStack{Text("Зима")}.tag(1)
HStack{Text("Лето")}.tag(2)
}.pickerStyle(.menu)
}}
//вариант 2
struct myPicker2: View {
var body: some View {
Menu(){Button("Зима", action: {print(1)})
Button("Лето", action: {print(2)})
}label:{Label("Список",systemImage: "list.bullet")}.frame(minHeight:50).menuStyle(.borderlessButton)
}}
//вариант 3
struct myPicker3: View {
@State private var toggleStates = ToggleStates()
@State private var topExpanded: Bool = true
struct ToggleStates {
var oneIsOn: Bool = false
var twoIsOn: Bool = true
}
var body: some View {
DisclosureGroup("Список", isExpanded: $topExpanded) {
Toggle("Зима", isOn: $toggleStates.oneIsOn)
Toggle("Лето", isOn: $toggleStates.twoIsOn)
DisclosureGroup("Sub-items") {
Text("Sub-item 1")
}}
}}
//вариант4
enum Privacy: String, Identifiable, CaseIterable {
case open = "Зима"
case closed = "Лето"
var id: String { self.rawValue }
}
struct myPicker4: View {
@State var selection = Privacy.open
var body: some View {
Menu {
Picker(selection: $selection,label: Text("")) {
ForEach(Privacy.allCases) { value in
Text(value.rawValue)
.tag(value)
}
}
} label: {Text("\(selection.rawValue)")
}
}
}
