Как заставить этот сборщик в SwiftUI работать? - PullRequest
0 голосов
/ 11 февраля 2020

Я слежу за «100 днями SwiftUI», чтобы научиться быстрому, но остановился на раннем вызове. Возможно, проблема имеет простое решение, но я просто не вижу его.

Проблема: средство выбора отображается, но значения не выбираются при выборе одного из них. Один из параметров не отображается как «помеченный» в пользовательском интерфейсе.

import SwiftUI

struct ContentView: View {

    @State private var originalValue  = ""
    @State private var originalUnit = ""
    @State private var convertedUnit = ""

    let lenghtUnits = ["meters", "miles", "yards"]

    var convertedValue : Double {
      return 0 // for now..
    }

    var body: some View {
        NavigationView {
            Form {
                Section(header: Text("From:")) {

                    TextField("Value:", text: $originalValue)
                        .keyboardType(.decimalPad)

                    Picker("fromUnit" , selection: $originalUnit) {
                        ForEach(0 ..< lenghtUnits.count) {
                            Text("\(self.lenghtUnits[$0])")
                        }
                    }
                    .pickerStyle(SegmentedPickerStyle())
                }

                Section(header: Text("Result")) {
                    Text("\(convertedValue)")
                }

            }
        .navigationBarTitle("Convert It")
        }
    }
}

1 Ответ

0 голосов
/ 11 февраля 2020

попробуйте это. (добавили теги к вашему тексту и сделали ваш выбор целым числом int)

struct ContentView: View {

@State private var originalValue  = ""
@State private var originalUnit = 0
@State private var convertedUnit = ""

let lenghtUnits = ["meters", "miles", "yards"]

var convertedValue : Double {
  return 0 // for now..
}

var body: some View {
    NavigationView {
        Form {
            Section(header: Text("From:")) {

                TextField("Value:", text: $originalValue)
                    .keyboardType(.decimalPad)

                Picker("fromUnit" , selection: $originalUnit) {
                    ForEach(0 ..< lenghtUnits.count) { index in
                        Text("\(self.lenghtUnits[index])").tag(index)
                    }
                }
                .pickerStyle(SegmentedPickerStyle())
            }

            Section(header: Text("Result")) {
                Text("\(convertedValue)")
            }

        }
    .navigationBarTitle("Convert It")
    }
}
}
...