我在努力学习某些代码并希望有人可以帮助我找出逻辑,听起来很简单。
我有2个步进器,stepper1和stepper2。它们的最大值都是10.我有一个变量,它是它们当前值的总和。
我希望一旦它们共同达到10,就禁止步进器增加值。
我正在学习编码,如果我的术语不正确,请原谅我。
这是我在使用其中一个步进器进行测试时所使用的代码。
var sumMaxValues = stepper1.value + stepper2.value
var purchaseMax = 10
@IBAction func stepper1Changed(_ sender: UIStepper) {
if sumMaxValues >= purchaseMax {
stepper.maximumValue = stepper.value
}
}
这种方法可以阻止步进器的使用,只会在点击时激活代码。我希望能够降低步进器值,以便再次使用步进器。
因此,如果stepper1和stepper2都是5(总共10),那么两者都不会增加,但它们可能会减少,因此会再次更改它们的值。
我还尝试将此添加到viewDidLoad()但它无法正常工作。我假设我在某个地方错过了某个功能,或者说逻辑都错了。
提前感谢您提出的任何建议。
答案 0 :(得分:0)
计算应该在func
中@IBAction func stepper1Changed(_ sender: UIStepper) {
var sumMaxValues = stepper1.value + stepper2.value
//
if sumMaxValues >= purchaseMax {
stepper1.maximumValue = stepper1.value
stepper2.maximumValue = stepper2.value
}
else
{
stepper1.maximumValue = purchaseMax
stepper2.maximumValue = purchaseMax
}
}
注意:其他步进器的操作具有相同的内容,您也可以将其连接到此IBAction
答案 1 :(得分:-1)
您需要为所有步进器创建相同的操作方法,然后像这样进行计算:
@IBAction func stepperAction(_ sender: UIStepper) {
let calculatedValue = stepper1.value + stepper2.value
stepper1.maximumValue = calculatedValue >= purchaseMax ? stepper1.value: purchaseMax
stepper2.maximumValue = calculatedValue >= purchaseMax ? stepper2.value: purchaseMax
}
如果你有三个步进器:
@IBAction func stepperAction(_ sender: UIStepper) {
let calculatedValue = stepper1.value + stepper2.value + stepper3.value
stepper1.maximumValue = calculatedValue >= purchaseMax ? stepper1.value: purchaseMax
stepper2.maximumValue = calculatedValue >= purchaseMax ? stepper2.value: purchaseMax
stepper3.maximumValue = calculatedValue >= purchaseMax ? stepper3.value: purchaseMax
}