美文网首页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