美文网首页100 Days of SwiftUI
100 Days of SwiftUI - Day 19 项目1

100 Days of SwiftUI - Day 19 项目1

作者: 星星星宇 | 来源:发表于2020-10-20 09:24 被阅读0次

构建一个处理单位转换的应用程序:
用户将选择一个输入单位和一个输出单位,
然后输入一个值,
然后查看转换的输出。

你可以从以下选项选择一种

  • 温度转换:用户选择摄氏度,华氏度或开氏度。
  • 长度转换:用户选择米,公里,英尺,码或英里。
  • 时间转换:用户选择秒,分钟,小时或天。
  • 体积转换:用户选择毫升,升,杯,品脱或加仑。
示例图

代码如下

struct ContentView: View {
    
    @State private var input = ""
    @State private var inputUnit = 0
    @State private var outPutUnit = 0
    var units = ["秒","分","小时","天"]

    var outPut: Double {
        let numberOfInput = Double(input) ?? 0
        var number秒 = 0.0
        
        let inputU = units[inputUnit]
        switch inputU {
        case "秒":
            number秒 = numberOfInput
        case "分":
            number秒 = numberOfInput * 60
        case "小时":
            number秒 = numberOfInput * 60 * 60
        case "天":
            number秒 = numberOfInput * 60 * 60 * 24
        default:
            number秒 = 0
        }
        
        var numberOutput = 0.0
        let outputU = units[outPutUnit]
        switch outputU {
        case "秒":
            numberOutput = number秒
        case "分":
            numberOutput = number秒 / 60
        case "小时":
            numberOutput = number秒 / 60 / 60
        case "天":
            numberOutput = number秒 / 60 / 60 / 24
        default:
            numberOutput = 0
        }
        return numberOutput
    }

    var body: some View {
        
        Form {
            Section {
                TextField("input", text: $input)
            }
            
            Section(header: Text("Select input unit")) {
                Picker("", selection: $inputUnit) {
                    ForEach(units.indices) {
                        Text("\(units[$0])")
                    }
                }
                .pickerStyle(SegmentedPickerStyle())
            }
            
            Section(header: Text("Select onput unit")) {
                Picker("", selection: $outPutUnit) {
                    ForEach(units.indices) {
                        Text("\(units[$0])")
                    }
                }
                .pickerStyle(SegmentedPickerStyle())
            }
            
            Section {
                Text("result: \(outPut)")
            }
        }
    }
}

相关文章

网友评论

    本文标题:100 Days of SwiftUI - Day 19 项目1

    本文链接:https://www.haomeiwen.com/subject/rsttmktx.html