swift - 小费计算器 - Swift

标签 swift

我刚开始使用 Swift,想制作一个小费计算器。但我遇到了一些问题,希望有人能指出我正确的方向。在 getBillAmt 函数中,我的总数没有更新/显示,它只显示 billAmt 我已经尝试了几个不同的选项来更新总数,但是可以明白了。我最近的尝试如下。

在我之前的尝试中,我遇到的问题是无法将 Int 转换为 Float。

变量,

var tipPercentAmt = Int()

var billAmt = Float()//小费前账单

var total = Float()

slider ,用户可以在其中滑动到小费金额(作为 int)

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

然后,从文本字段(作为 float )中获取用户的账单金额,然后向其添加小费以在标签中显示总数

@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
}

最佳答案

没有任何设置来实际调用您的 getBillAmt 函数。假设您的文本字段已通过其委托(delegate)正确设置,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
}

如您所见,我还进行了一些其他修复。

关于swift - 小费计算器 - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40054401/

相关文章:

ios - Swift 2 迁移问题

ios - 协议(protocol)中的静态变量

ios - 将唯一值添加到解析服务器中的数组(swift 3)

ios - Swift 看不到使用 block 的 objc 类函数

swift - 你能帮我把多余的刘海去掉吗?

objective-c - 如何从运行时创建的字符串实例化 Swift 对象?

swift - 更改桌面 View 的按钮图像

ios - 如何: check for nil on every value before presentation of ViewController

swift - 错误 : Could not build CSQLiteMac in Vapor

ios - 如何在 iOS8.1 上使用 Swift 按顺序拍摄多张照片(每张延迟 1 秒)?