【发布时间】:2020-03-03 11:20:04
【问题描述】:
我一直在尝试在 SwiftUI 中创建一个表单,但由于使用“Form()”的限制,我选择创建一个包含一个按钮的 ForEach 循环的 ScrollView。当我运行项目并尝试单击按钮时,它会单击不正确的按钮,除非我滚动视图。我是 SwiftUI 的新手,我一直无法弄清楚。
我尝试制作不同大小的 ScrollView,但似乎没有相关性
struct DropDown: View {
var datos: [String]
var categoria: String
@State var titulo: String = "Seleccione"
@State var expand = false
var body: some View {
VStack {
Text(categoria).fontWeight(.heavy).foregroundColor(.white)
HStack {
Text(titulo).fontWeight(.light).foregroundColor(.white)
Image(systemName: expand ? "chevron.up" : "chevron.down").resizable().frame(width: 10, height: 6).foregroundColor(.white)
}.onTapGesture {
self.expand.toggle()
}
if expand {
ScrollView(showsIndicators: true) {
ForEach(0..<self.datos.count){ nombre in
Button(action: {
print(self.datos[nombre])
self.titulo = self.datos[nombre]
self.expand.toggle()
diccionarioDatos[self.categoria] = self.titulo
print(diccionarioDatos)
}) {
Text(self.datos[nombre]).foregroundColor(.white)
}
}
}
.frame(maxHeight: 150)
.fixedSize()
}
}
.padding()
.background(LinearGradient(gradient: .init(colors: [.blue, .green]), startPoint: .top, endPoint: .bottom))
.cornerRadius(20)
.animation(.spring())
}
}
I clicked on "2018" under "Modelo" and "2015" got selected for some reason
【问题讨论】:
-
点击错误按钮是什么意思?错误的按钮是否突出显示?错误的日期打印到控制台?更多上下文可能有助于找到解决方案。
-
当我尝试从下拉列表中选择一个按钮时,它会按下不同的按钮,通常是列表中的第一个。
-
添加父视图的代码可能有用吗?我唯一能建议的是仔细检查按钮文本的框架,看看它是否符合您的预期。
-
完成了,你能再试试看吗...非常感谢!!
标签: swift scrollview swiftui