Swift - Xcode Как обновить степпер в зависимости от отдельной переменной - PullRequest
0 голосов
/ 03 июня 2018

Я борюсь с некоторым кодом и надеюсь, что кто-нибудь поможет мне разобраться в логике, это звучит довольно просто.

У меня есть 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 (), но это не работает.Я предполагаю, что где-то пропустил функцию или просто неправильно понял логику.

Заранее благодарен за любой совет, который вы можете предложить.

Ответы [ 2 ]

0 голосов
/ 03 июня 2018

Вам необходимо создать один и тот же метод действия для всех степперов, а затем выполнить вычисления следующим образом:

@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

}
0 голосов
/ 03 июня 2018

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
    }


}

Примечание: действие другого степпера имеет такое же содержание, также вы можете подключить его к этому IBAction

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...