Untitled
swift
a month ago
3.5 kB
2
Indexable
Never
// // ContentView.swift // Unit Converter // // Created by Arkar Min Tun on 14/08/2023. // import SwiftUI struct ContentView: View { @State private var selectedConversion = "Temperature" let conversions = ["Temperature", "Length", "Time", "Volume"] @State private var temperatureInput = 0.0 @State private var temperatureFromUnit: UnitTemperature = .celsius @State private var temperatureToUnit: UnitTemperature = .celsius let temperatureConversions: [UnitTemperature] = [.celsius, .kelvin, .fahrenheit] var temperatureResult: String { var measurement = Measurement(value: temperatureInput, unit: temperatureFromUnit) measurement.convert(to: temperatureToUnit) return measurement.formatted() } func getTemperatureUnit(_ temp: UnitTemperature) -> String { switch temp { case .celsius: return "Celcius" case .fahrenheit: return "Fahrenheit" case .kelvin: return "Kelvin" default: return "Unsupport" } } var body: some View { NavigationView { Form { Section { Picker("Conversion Type", selection: $selectedConversion) { ForEach(conversions, id: \.self) { Text($0) } } } switch selectedConversion { case "Temperature": Section { HStack { TextField( "Temperature", value: $temperatureInput, format: .number ) Picker("", selection: $temperatureFromUnit) { ForEach(temperatureConversions, id: \.self) { Text(getTemperatureUnit($0)) } } } } header: { Text("Temperature Conversion") } Section { Picker("Unit To", selection: $temperatureToUnit) { ForEach(temperatureConversions, id: \.self) { Text(getTemperatureUnit($0)) } } .pickerStyle(.segmented) } header: { Text("Convert To") } Section { Text(temperatureResult) } header: { Text("Result") } default: Section { Text("HELLO") } header: { Text("Others") } } } .navigationTitle("Unit Converter") } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } }