我在iOS中使用分段 Select 器,它包含了很少的项目.当用户点击未选中项目时,该项目变为选中.有些项目可以包含子项目.因此,当用户点击已经 Select 的类型,我需要显示模态窗口与子项目 Select 其中之一. 但点击已 Select 的项目分段拾取器是不处理.我试着使用"长按",但它不工作,以及.
我想使用原生iOS设计,这就是为什么我不想使用"按钮"而不是分段拾取器.
因此,问题是我如何处理点击已经 Select 的项目分段拾取器显示子项目 Select 其中一个?它可以是"长按"或其他选项,这将是直观的用户.
import SwiftUI
struct CustomSegmentedPicker: View {
@State private var showModalSelectD: Bool = false
enum periods {
case A, B, C, D, All
}
@State var predefinedPeriod: periods = periods.All
@State var predefinedPeriodD: String = "D1"
var body: some View {
ZStack {
Color.clear
.sheet(isPresented: $showModalSelectD, content: {
List {
Picker("D", selection: $predefinedPeriodD) {
Text("D1").tag("D1")
Text("D2").tag("D2")
Text("D3").tag("D3")
}
.pickerStyle(.inline)
}
})
VStack {
HStack {
Picker("Please choose a currency", selection: $predefinedPeriod) {
Text("A").tag(periods.A)
Text("B").tag(periods.B)
Text("C").tag(periods.C)
Text("D (\(predefinedPeriodD))").tag(periods.D)
.contentShape(Rectangle())
.simultaneousGesture(LongPressGesture().onEnded { _ in
print("Got Long Press")
showModalSelectD.toggle()
})
.simultaneousGesture(TapGesture().onEnded{
print("Got Tap")
showModalSelectD.toggle()
})
Text("All").tag(periods.All)
}
.pickerStyle(SegmentedPickerStyle())
}
}
}
}
}