はじめに
1枚もののアプリなら作れそうな気がする(←画面遷移時のあらゆる考慮に自身がない)
1枚もののアプリを作ろう
なんなら一晩でできるやつ(15~45分)
一晩と言っても、アニメ鑑賞の時間も確保せねばならんしな。
アプリ画面
コード
ContentView.swift
import SwiftUI
extension UIApplication {
func endEditing() {
sendAction(
#selector(UIResponder.resignFirstResponder),
to: nil, from: nil, for: nil
)
}
}
struct ContentView: View {
@State private var price = "0"
@State private var commitPrice = 0
@State private var num1 = 0
@State private var num2 = 0
@State private var num3 = 0
@State private var sum = 0
@State private var inputNum = "0"
var body: some View {
VStack {
Text("いくら買う?")
HStack{
TextField("RoundedBorderTextFieldStyle", value: $commitPrice,formatter: NumberFormatter())
.keyboardType(.numberPad)
.font(.title)
.textFieldStyle(RoundedBorderTextFieldStyle())
Text("円")
}
Button(action: {
sum = num1 + num2 + num3
price = String(sum)
UIApplication.shared.endEditing()
}, label: {
Text("おやつのごうけいのおかねをきめる")
}).padding()
HStack{
TextField("RoundedBorderTextFieldStyle", value: $num1,formatter: NumberFormatter())
.keyboardType(.numberPad)
.font(.title)
.textFieldStyle(RoundedBorderTextFieldStyle())
Text("円")
}
HStack{
TextField("RoundedBorderTextFieldStyle", value: $num2,formatter: NumberFormatter())
.keyboardType(.numberPad)
.font(.title)
.textFieldStyle(RoundedBorderTextFieldStyle())
Text("円")
}
HStack{
TextField("RoundedBorderTextFieldStyle", value: $num3,formatter: NumberFormatter())
.keyboardType(.numberPad)
.font(.title)
.textFieldStyle(RoundedBorderTextFieldStyle())
Text("円")
}
Button(action: {
sum = num1 + num2 + num3
price = String(sum)
UIApplication.shared.endEditing()
}, label: {
Text("えらんだおやつのきんがくをけいさんする")
}).padding()
Text("おやつは\(price)円でいいですか?")
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
感想と反省点
- いくらなんでも簡素すぎた
- これ実際に子供には使いにくいだろう?
- かわいくないし、かっこよくもない。とはいえ、レイアウトはまぁおいおい直すとしよう。
- 文字入力より、カメラ起動させてお菓子の値札から数値を認識させるように作り変えたいな