我刚刚开始使用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
}
答案 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
}
正如您所看到的,我也做了一些其他修复。