我研究了与UIStepper相关的其他问题,似乎没有人回答我的具体问题(他们都是在目标C中)。
这是我的代码:
class EditItemViewController: UIViewController {
@IBOutlet weak var myTextField: UITextField!
@IBOutlet weak var myStepper: UIStepper!
@IBAction func stepperChanged(sender: UIStepper) {
var currentValue = myTextField()!
let valueFromStepper = Int(sender.value).description
currentValue += valueFromStepper.toInt()!
myTextField = currentValue.description
}
override func viewDidLoad() {
super.viewDidLoad()
myTextField = NSUserDefaults.standardUserDefaults().stringForKey("item")
myStepper.autorepeat = false
}
文本字段使用UserDefaults中的值填充。用户可以在文本字段中更改它或使用步进器。现在,单击步进器上的+可以正确地将文本字段值添加1。但是,再次按下会增加2,然后是3,等等。减量功能不起作用。我错过了什么?
答案 0 :(得分:1)
你的逻辑错误。每次步进器值更改时,只需将步进器的当前值添加到文本字段即可。按+或 - 按钮时,步进器的值会递增或递减。您需要跟踪步进器的当前值,然后在值发生变化时进行比较,看它是否已增加或减少。然后,不是将当前值添加到文本字段的值,而是添加或减去1。