0

tenSlidercurrentBPM值更改 10 并将其结果传递给 bpmLabel。这工作正常。

但是,我也希望onesSlider更新相同的标签,但要使用 +1 或 -1。

问题是它不检查当前值并更新该值。相反,它只是更新自己的值并将其传递给bpmLabel.

有人知道如何将两者联系起来吗?

import WatchKit
import Foundation

class InterfaceController: WKInterfaceController {


@IBOutlet var bpmLabel: WKInterfaceLabel!

@IBOutlet var tenSlider: WKInterfaceSlider!
@IBOutlet var onesSlider: WKInterfaceSlider!

var currentBPM = Int()

@IBAction func tenSliderDidChange(value: Int) {
    currentBPM = value
    updateLabel()
}



@IBAction func onesSliderDidChange(value: Int) {
    currentBPM = value
    updateLabel()

}

func updateLabel() {
    bpmLabel.setText("\(currentBPM)")

}
4

1 回答 1

0

您总是将 currentBPM 值更改为滑块设置的值。因此,如果您设置一个滑块,则 currentBPM 值包含一个滑块的值和十个滑块的值。由于您无法直接从滑块访问值,我建议您这样做:

var ones = Int()
var tens = Int()
var currentBPM: Int {
    return tens * 10 + ones
    // return tens + ones - depending on how did you set the min, max and step values on the ten slider
}

@IBAction func tenSliderDidChange(value: Int) {
    tens = value
    updateLabel()
}



@IBAction func onesSliderDidChange(value: Int) {
    ones = value
    updateLabel()

}

func updateLabel() {
    bpmLabel.setText("\(currentBPM)")
}
于 2015-06-25T10:47:54.513 回答