Swift UI
- TextField
- Picker
- Picker style
- NavigationStack
- Focus mode
- Toolbar
import SwiftUI
struct ContentView: View {
@State private var checkAmount:Double = 0
@State private var numOfPeopleIndex:Int = 0
@State private var tipsPercent:Int = 10
@FocusState private var isFocused: Bool
private let minPeopleCount = 2
private let tipsPercentList: [Int] = [10, 15, 18, 20, 25, 0]
var amountPerPerson: Double {
checkAmount * (1.0 + Double(tipsPercent) / 100.0) / Double(numOfPeopleIndex + minPeopleCount)
}
var body: some View {
NavigationStack {
Form {
Section{
TextField("Amount", value: $checkAmount, format: .currency(code: Locale.current.currency?.identifier ?? "USD"))
.keyboardType(.numberPad)
.focused($isFocused)
Picker("Number of people", selection: $numOfPeopleIndex) {
ForEach(2..<20) {
Text("\($0) People")
}
}
.pickerStyle(.navigationLink)
}
Section("Tip") {
Picker("Tip Percentage", selection: $tipsPercent) {
ForEach(tipsPercentList, id: \.self) {
Text("\($0)%")
}
}
.pickerStyle(.segmented)
}
Section("Amount per person") {
Text(amountPerPerson, format: .currency(code: Locale.current.currency?.identifier ?? "USD"))
}
}
.navigationTitle("We Split")
.toolbar {
if isFocused {
Button("Done") {
isFocused = false
}
}
}
}
}
}
Running:
Top comments (0)