Swift 手表套件:将2个滑块连接到1个标签
Swift 手表套件:将2个滑块连接到1个标签,swift,slider,label,watchkit,watchos,Swift,Slider,Label,Watchkit,Watchos,tenSlider将把currentBPM值更改10,并将其结果传递给bpmLabel。这个很好用 但是,我还希望onesSlider更新相同的标签,但改为+1或-1 问题是它不会检查当前值并更新该值。相反,它只更新自己的值并将其传递给bpmLabel 有人知道如何将两者联系起来吗 import WatchKit import Foundation class InterfaceController: WKInterfaceController { @IBOutlet var bpmLab
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)")
}