versuch eine App

This commit is contained in:
Ingo Rohlf 2025-10-24 09:20:43 +02:00
parent f64acd29b2
commit 164d8792ca
4 changed files with 89 additions and 0 deletions

View file

@ -16,6 +16,10 @@
"comment" : "A button that adds a new bike to the list of bikes.",
"isCommentAutoGenerated" : true
},
"Betrag" : {
"comment" : "A text field for entering an amount.",
"isCommentAutoGenerated" : true
},
"Bikes" : {
"comment" : "The title of the list section in the BikeSwipe tab.",
"isCommentAutoGenerated" : true
@ -24,6 +28,10 @@
"comment" : "A word displayed in a list item.",
"isCommentAutoGenerated" : true
},
"Check-out" : {
"comment" : "A title for a screen where a user can check out items.",
"isCommentAutoGenerated" : true
},
"count: %lld\nunicode: %lld\nlength: %lld" : {
"comment" : "Displays information about the number of characters, Unicode scalars, and bytes in a given string.",
"isCommentAutoGenerated" : true,
@ -69,6 +77,14 @@
"comment" : "A button that triggers an alert when pressed.",
"isCommentAutoGenerated" : true
},
"split between %lld" : {
"comment" : "A stepper that allows the user to select how many people should split the bill. The argument is a description of the stepper, the second is the binding value for the selected number, and the third is",
"isCommentAutoGenerated" : true
},
"Summe" : {
"comment" : "A text field for entering the total amount to be split.",
"isCommentAutoGenerated" : true
},
"Swapping %@ <-> %@" : {
"comment" : "A label displaying the current state of the swap operation, showing the values of the two variables before and after the swap.",
"isCommentAutoGenerated" : true,

69
SplitAppView.swift Normal file
View file

@ -0,0 +1,69 @@
import SwiftUI
struct SplitAppView: View {
@State var amount: String = "100.0"
@State var tip: Double = 0.0
@State var people: Int = 1
@State private var selectedCurrency: String = "EUR"
private let currencies = ["EUR", "USD", "GBP", "JPY"]
private var formattedAmount: String {
// Formatiere den Betrag als Währung
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .currency
numberFormatter.currencyCode = selectedCurrency
if let amountDouble = Double(amount) {
return numberFormatter.string(from: NSNumber(value: amountDouble)) ?? ""
}
return ""
}
// enum Tip: Double, CaseIterable, Identifiable {
// case 0.0,.10,0.15,0.20
// var id: Double { self.rawValue }
// }
var body: some View {
VStack {
TextField("Betrag", text: $amount)
.keyboardType(.decimalPad)
.textFieldStyle(RoundedBorderTextFieldStyle())
.padding()
}
// Picker("Währung wählen:", selection: $selectedCurrency) {
// ForEach(currencies, id: \.self) { currency in
// Text(currency).tag(currency)
// }
// }
// .pickerStyle(MenuPickerStyle())
// .padding()
Text("Check-out")
Form {
TextField("Summe", text: $amount)
.keyboardType(.decimalPad)
// Picker("Tip", sources: Tip, selection: $tip)
// .keyboardType(.decimalPad)
// .pickerStyle(.segmented)
Stepper("split between \(people)", value: $people, in: 1...10)
// Button("Split") {
// split = (total + (total * tip / 100.0)) / Double(people)
// }
}
}
}
#Preview {
SplitAppView()
}

View file

@ -28,6 +28,7 @@
FBE1A29D2EAA1B4300081638 /* UniView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBE1A29C2EAA1B4300081638 /* UniView.swift */; };
FBE1A29F2EAA225600081638 /* NewUnicycleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBE1A29E2EAA225600081638 /* NewUnicycleView.swift */; };
FBE1A2A12EAA340F00081638 /* WebAppView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBE1A2A02EAA340F00081638 /* WebAppView.swift */; };
FBE1A2A32EAA635600081638 /* SplitAppView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBE1A2A22EAA635600081638 /* SplitAppView.swift */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
@ -53,6 +54,7 @@
FBE1A29C2EAA1B4300081638 /* UniView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UniView.swift; sourceTree = "<group>"; };
FBE1A29E2EAA225600081638 /* NewUnicycleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewUnicycleView.swift; sourceTree = "<group>"; };
FBE1A2A02EAA340F00081638 /* WebAppView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebAppView.swift; sourceTree = "<group>"; };
FBE1A2A22EAA635600081638 /* SplitAppView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplitAppView.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -70,6 +72,7 @@
isa = PBXGroup;
children = (
FBE1A2A02EAA340F00081638 /* WebAppView.swift */,
FBE1A2A22EAA635600081638 /* SplitAppView.swift */,
FBA00D742EA7ACDD006F8B9A /* SwapperView.swift */,
FBA00D702EA7A830006F8B9A /* PaddingView.swift */,
FBA00D6E2EA78850006F8B9A /* Color.swift */,
@ -187,6 +190,7 @@
0CC14A892E92EEA900271E8D /* Playground.swift in Sources */,
FBA6FA642EA7715E00C373EC /* Extentions.swift in Sources */,
FB79FE4A2EA906CC0011678F /* UnicycleView.swift in Sources */,
FBE1A2A32EAA635600081638 /* SplitAppView.swift in Sources */,
0CC14A872E92EC7B00271E8D /* App.swift in Sources */,
FBE1A29F2EAA225600081638 /* NewUnicycleView.swift in Sources */,
FBA00D732EA7A96C006F8B9A /* ContentView.swift in Sources */,