tenSlider会将currentBPM值更改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)")

}

最佳答案

您总是将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)")
}

关于swift - WatchKit:将2个滑条连接到1个标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31046543/

10-12 18:30