Взятие среднего из нескольких значений ползунка - PullRequest
0 голосов
/ 22 ноября 2018

Я новичок в кодировании и мне нужна помощь в извлечении значения из функций моего слайдера.Сейчас я пытаюсь добавить два значения sender.values, обновив переменную outside в функции слайдера.Я не знаю, как вытащить информацию из функции.Все помогает!Спасибо!

class sbBasicController: UIViewController {

    @IBOutlet weak var nutritionNum: UILabel!

    @IBOutlet weak var hydrationNum: UILabel!

    @IBOutlet weak var basicAvg: UILabel!


    // Variables

    private var nutritionValue: Float = 0.0
    private var hydrationValue: Float = 0.0


    //Functions

    @IBAction func nutritionScroll(_ sender: UISlider) {

        nutritionValue = sender.value

        nutritionNum.text = String(format: "%.1f", nutritionValue)
    }


    @IBAction func hydrationScroll(_ sender: UISlider) {

        hydrationValue = sender.value

        hydrationNum.text = String(format: "%.1f", hydrationValue)
    }


    func updateBasic() {

        let basics = (nutritionValue + hydrationValue)

        print("\(basics)")

        basicAvg.text = "\(basics)"
    }
}

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Вы можете просто вызвать функцию updateBasics в событиях sliderNutrition и sliderHydration.объявите функцию updateBasics следующим образом:

func updateBasics
{

hydrationNum.text = String(format: "%.1f", sliderHydration.value)

nutritionNum.text = String(format: "%.1f", sliderNutrition.value)

basicAvg.text =  sliderNutrition.value+ sliderHydration.value
}
0 голосов
/ 22 ноября 2018

Прямо сейчас это не похоже на то, что что-либо вызывает updateBasic(), поэтому метка basicAvg не обновляется

Методы nutritionScroll и hydrationScroll должны вызывать updateBasic().

@IBAction func nutritionScroll(_ sender: UISlider) {

    nutritionValue = sender.value

    nutritionNum.text = String(format: "%.1f", nutritionValue)

    updateBasic()
}

Другой вариант - добавить didSet к каждому из свойств nutritionValue и hydrationValue.

private var nutritionValue: Float = 0.0 {
    didSet {
        // You could even update nutritionNum.text here as well
        updateBasic()
    }
}
...