问题描述
总的来说,我对 swiftUI 和开发非常陌生。我正在尝试创建一个返回字符串的动态文本字段列表。
ForEach((1...numberofNAdefects),id: \.self) {
TextField("\($0): Enter defect description",text: $nadefect1)
我遇到的问题是我希望“$nadefect#”返回字符串随着 foreachloop 动态增加。最初我的想法是添加 text: $nadefect\($0)
但这不起作用。
解决方法
像您建议的那样增加字符串是不可能的。不过,在 SwiftUI 中实现动态文本字段列表非常容易。
您可以使用字符串数组代替增加字符串:
struct ContentView: View {
@State var defects: [String] = ["","",""]
var body: some View {
ForEach(0..<defects.count,id: \.self) {
TextField("\($0 + 1): Enter defect description",text: $defects[$0])
}.padding()
}
}