Swift - Xcode 如何根据单独的变量更新步进器
Swift - Xcode How to update stepper depending on a separate variable
我正在努力编写一些代码,希望有人能帮我弄清楚其中的逻辑,听起来很简单。
我有 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() 但它不起作用。我假设我在某处遗漏了一个功能,或者只是逻辑错误。
提前感谢您提供的任何建议。
calc 应该在 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
}
}
注意:其他stepper的action内容相同,也可以连接到这个IBAction上
您需要为所有步进器创建相同的动作方法,然后像这样进行计算:
@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
}
我正在努力编写一些代码,希望有人能帮我弄清楚其中的逻辑,听起来很简单。
我有 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() 但它不起作用。我假设我在某处遗漏了一个功能,或者只是逻辑错误。
提前感谢您提供的任何建议。
calc 应该在 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
}
}
注意:其他stepper的action内容相同,也可以连接到这个IBAction上
您需要为所有步进器创建相同的动作方法,然后像这样进行计算:
@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
}