在swift中添加多个滑块的值然后平均它们?

时间:2015-09-18 13:29:17

标签: ios xcode swift

我做错了我但是我不确定如何得到它我真的可以使用一些帮助。我有3个滑块(我可能需要更多以后),基本上它们的价值是1-10,对于评级系统,我希望它们平均得到平均分数..所以这就是我所拥有的

@IBOutlet weak var speed: UISlider!
@IBAction func speedChange(sender: AnyObject) {
let speedValue = speed.value
}


@IBOutlet weak var body: UISlider!
@IBAction func bodyChange(sender: AnyObject) {
let bodyValue = body.value
}


@IBOutlet weak var details: UISlider!
@IBAction func detailsChange(sender: AnyObject) {
let detailsValue = details.value
}


@IBOutlet weak var score: UILabel!

func final() {

var thescore = (speed.value + body.value + details.value) / 3    
score.text = "\(thescore)"

}

唯一的问题是它不起作用。 +错误输出,所以我需要解决这个问题,但即便如此,我仍然认为我的方法完全没有了。

1 个答案:

答案 0 :(得分:0)

它对我有用。您确定故事板中的插座是否与您的控制器相关联? 此外,您可能希望每次滑块更改其值时调用函数final,如下所示:

    @IBOutlet weak var sliderA: UISlider!
    @IBAction func sliderAchanged(sender: AnyObject) {
        fonction()
    }


    @IBOutlet weak var sliderB: UISlider!
    @IBAction func sliderBchanged(sender: AnyObject) {
        fonction()
    }

    @IBOutlet weak var sliderC: UISlider!
    @IBAction func sliderCchanged(sender: AnyObject) {
        fonction()
    }

    @IBOutlet weak var label: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        fonction()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func fonction() {
        var thescore = (sliderA.value + sliderB.value + sliderC.value ) / 3
        label.text = "\(thescore)"
    }​

我在viewDidLoad方法中添加了对函数的调用,以初始化标签的文本。