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/