取多个滑块值的平均值

时间:2018-11-22 17:21:53

标签: ios swift function uislider

我是编码的新手,需要帮助从滑块函数中提取值。现在,我正在尝试通过更新Slider函数中的outside变量将两个sender.values加在一起。我不知道如何从功能中提取信息。有什么帮助!谢谢!

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 :(得分:1)

现在看来好像没有什么叫updateBasic(),这就是basicAvg标签没有被更新的原因

nutritionScrollhydrationScroll方法应分别调用updateBasic()

@IBAction func nutritionScroll(_ sender: UISlider) {

    nutritionValue = sender.value

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

    updateBasic()
}

另一种选择是向didSetnutritionValue每个属性中添加一个hydrationValue

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

答案 1 :(得分:0)

您只需在sliderNutrition和sliderHydration事件中都调用updateBasics函数。 像这样声明updateBasics函数:

func updateBasics
{

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

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

basicAvg.text =  sliderNutrition.value+ sliderHydration.value
}