提问者:小点点

我该如何为单位做一个选择器呢?


我是新的在斯威夫特,我想做一个单位转换器应用程序,以测试我的技能。 下面是我制作一个选择器的尝试:

struct ContentView: View {
@State private var inputNumber = ""
@State private var inputUnit = 2
@State private var outputUnit = ""

let inputUnits = ["meters", "kilometers", "feet", "yard", "miles"]
let outputUnits = ["meters", "kilometers", "feet", "yard", "miles"]
var body: some View {
    NavigationView {
        Form {
            Section {
                TextField("Enter measurement", text: $inputNumber)
                    .keyboardType(.decimalPad)

                Picker("Your unit", selection: $inputUnit) {
                    ForEach(0 ..< inputUnits.count) {
                        Text("\(self.inputUnits)")
                    }

共1个答案

匿名用户

您需要对闭包使用参数,它是一个索引

Picker(selection: $inputUnit, label: Text("Your unit")) {
    ForEach(0 ..< inputUnits.count) {
        Text("\(self.inputUnits[$0])") //<- $0 is the index for your array
    }
}