首页 > 解决方案 > Swift - Xcode 如何根据单独的变量更新步进器

问题描述

我正在为一些代码而苦苦挣扎,并希望有人可以帮助我弄清楚逻辑,这听起来很简单。

我有 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() 但它不起作用。我假设我在某处遗漏了一个功能,或者只是逻辑全错了。

提前感谢您提供的任何建议。

标签: swiftxcodeuistepper

解决方案


calc 应该在函数内部

@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


推荐阅读