小费计算器 - 斯威夫特

时间:2016-10-15 02:43:02

标签: swift

我刚刚开始使用Swift,想要制作小费计算器。但我遇到了一些问题,并希望有人能指出我正确的方向。在getBillAmt函数中,我的总数没有更新/显示,它只显示billAmt我尝试了一些不同的选项来获得总数更新,但无法获得。我最近的尝试在下面。

在我以前的尝试中,我的问题无法将Int转换为Float。

变量,

var tipPercentAmt = Int()

var billAmt = Float() //bill before tip

var total = Float()

滑块,用户可以滑动到尖端量(作为int)

@IBAction func tipAmtVal(sender: UISlider) {
    let tipPercentAmt = Int(sender.value)
}

并且,从文本字段(作为浮动)获取用户的账单金额,然后将提示添加到其中以显示标签中的总数

@IBAction func getBillAmt(sender: UITextField) {
    let billAmt = Float(billAmtText.text!)
    let total = billAmt! + (Float(tipPercentAmt / 100)
    tipAmtLabel.text = "\(total)"
}

//cause labels to update when user hits return
func textFieldShouldReturn(textField: UITextField) -> Bool {
    textField.resignFirstResponder()
    return true
}

1 个答案:

答案 0 :(得分:1)

实际上没有设置实际调用getBillAmt功能的设置。假设您的文本字段已通过其委托正确设置,则将调用textFieldShouldReturn函数,就是这样。

您需要从那里拨打getBillAmount

func getBillAmt(textField: UITextField) {
    if let text = textField.text {
        if let billAmt = Float(text) {
            let total = billAmt + (Float(tipPercentAmt / 100)
            tipAmtLabel.text = "\(total)"
        }
    }
}

//cause labels to update when user hits return
func textFieldShouldReturn(textField: UITextField) -> Bool {
    textField.resignFirstResponder()

    getBillAmt(textField: textField)

    return false
}

正如您所看到的,我也做了一些其他修复。