ObservableObjectプロトコル、@Published、@ObservedObjectを利用する
### クラス定義とプロパティを使った処理
struct ContentView: View {
@ObservedObject var user = User()
var body: some View {
VStack(alignment:.leading, spacing:15){
Group {
TextField("名前", text: $user.name)
TextField("身長", text: $user.tall)
.keyboardType(.numberPad)
}.textFieldStyle(RoundedBorderTextFieldStyle())
if !(user.name).isEmpty && !(user.tall).isEmpty {
Text("\(user.name)さんは\(fitSize(tall: user.tall))")
}
}.frame(width: 250)
}
}
class User: ObservableObject {
@Published var name = ""
@Published var tall = ""
}
func fitSize(tall:String) -> String {
guard let height = Double(tall) else {
return "???"
}
switch height {
case 145..<155 :
return "Sサイズです"
case 155..<176 :
return "Mサイズです"
case 176..<185 :
return "Lサイズです"
default:
return "適したサイズがありません"
}
}

面白い
名前と身長をclassにする