gpt4 book ai didi

swift - 如何访问文本字段值并将其转换为 double

转载 作者:行者123 更新时间:2023-11-30 10:33:10 24 4
gpt4 key购买 nike

我正在尝试使用 swift 构建一个小费计算器,但遇到了很多问题。我有一个文本框,用户可以在其中输入账单金额,然后他们可以调整 slider 来指示他们想要小费的百分比。我已经设法让 slider 和与其关联的标签在更改 slider 上的值会更改标签的情况下工作。但是,我不知道如何让文本字段工作。我尝试为正在更改的账单金额文本框创建一个操作,但无论我在其中输入什么,代码似乎都没有被执行(每当我运行代码并单击文本框时,键盘不会消失,所以也许这是问题的一部分?)。我所需要的只是当我单击计算按钮时能够访问操作内文本框字段中的值,但我似乎什至无法显示该值,更不用说将其转换为 double 值了,所以我可以对其进行计算。我对 Swift 非常陌生,真的很想了解我做错了什么。我在这里尝试了多个教程和类似的问题,但没有一个起作用。我感谢你们所能提供的所有帮助。

    import UIKit

class ViewController: UIViewController {

@IBOutlet weak var txtBillAmount: UITextField!
@IBOutlet weak var lblTipPercentage: UILabel!
@IBOutlet weak var sldTipPercentage: UISlider!
@IBOutlet weak var lblTipAmount: UILabel!
@IBOutlet weak var lblTotalAmount: UILabel!

var tipPercentage = 10
var billAmount = ""


@IBAction func valueChanged(sender: AnyObject) {
let currentValue = Int(sldTipPercentage.value)
lblTipPercentage.text = "\(currentValue)%"
tipPercentage = currentValue

}


@IBAction func btnCalculate(sender: AnyObject) {
lblTipAmount.text = "\(billAmount)"

}

@IBAction func txtBillAmountValueChanged(sender: AnyObject) {
}

override func viewDidLoad() {
super.viewDidLoad()
//txtBillAmount.delegate = self

// Do any additional setup after loading the view, typically from a nib.
}

@IBAction func btnReset(sender: UIButton) {
sldTipPercentage.value = 10
lblTipPercentage.text = "10%"
txtBillAmount.text = ""
lblTipAmount.text = "--"
lblTotalAmount.text = "--"
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}


}

This is a screenshot of how the UI looks

Error that I am getting

最佳答案

[Xcode >= 7 和 Swift > 2]

尝试这样

@IBAction func btnCalculate(sender: AnyObject) {
if let textValue = txtBillAmount.text {
let billAmnt = Double(textValue)

let tipAmount = (billAmnt*tipPercentage)/100

lblTipAmount.text = "\(tipAmount)"
}
}

如果您使用的是 Xcode-6 和 Swift <2,请尝试以下方法。因为 Double字符串初始值设定项仅在 Swift 2 (Xcode 7) 中可用。 [建议更新您的 Xcode]

@IBAction func btnCalculate(sender: AnyObject) {
let billAmnt = (txtBillAmount.text! as NSString).doubleValue
let tipAmount = (billAmnt*tipPercentage)/100

lblTipAmount.text = "\(tipAmount)"
}

关于swift - 如何访问文本字段值并将其转换为 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58656437/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com