我正在try 创建一些我认为是简单的代码来显示字典项的键,并实现Stepper或Picker来修改窗体视图中一行中的键的值.
最后,我要做的就是向用户显示他们输入的单词列表,以及他们可以更改的相关数值.
几乎每一种解决问题的方法都会彻底炸毁我的画布,因为很明显,我试图解决这个问题的try 是错误的.
无论如何,下面是我一直在try 解决问题的一些方法的例子.请注意,我还try 了许多类型的视图,比如带有单词的文本和关联的Integer的选取器.我只是想,为了演示这个问题,对每个示例使用Stepper可能就足够好了.
struct Likenesses {
let word: String
var likeness: Int = 0
}
struct ContentView: View {
@State private var words: [String] = []
@State private var likeness: [Int] = []
@State private var wordLikeness: [String:Int] = [:]
@State private var StructLikeness: [Likenesses] = []
var body: some View {
Form {
// Dict Method
Section {
ForEach(Array(wordLikeness.keys), id: \.self) { key in
Stepper("\(key)", value: $wordLikeness[key], in: 0...8, step: 1)
}
}
// Arrays method
Section {
ForEach(0...words.count, id: \.self) { i in
Stepper("\(word[i])", value: $likeness[i], in: 0...8, step: 1)
}
}
// Struct method
Section {
ForEach(StructLikeness, id: \.self) { s in
/*
Yes, I know structs are not references and pass copies around, this was another issue I was going to have to solve eventually, but for now, this gets the idea of what I was trying to solve with a struct
*/
Stepper("\(s.word)", value: $s.likeness, in: 0...8, step: 1)
}
}
}
}
}