如何求和WKInterfaceSlider值?

时间:2015-12-20 10:24:31

标签: xcode swift watchkit watch-os-2

我想知道如何将2 WKInterfaceSlider的值相加。

这是我到目前为止完成的整个代码:

@IBOutlet weak var label1: WKInterfaceLabel!
@IBOutlet weak var slider1: WKInterfaceSlider!

@IBOutlet weak var label2: WKInterfaceLabel!
@IBOutlet weak var slider2: WKInterfaceSlider!


@IBAction func sliderValueChanged(value: Float)
{
    let roundedValue = Int(round(value))
    self.label1.setText("\(roundedValue)")
}

@IBAction func slider2ValueChanged(value: Float)
{
    let roundedValue = Int(round(value))
    self.label2.setText("\(roundedValue)")
}

@IBAction func calculos()
{
    var result = slider1.value + slider2.value
    self.result.setText("\(result)")
}

Xcode不会编译它,有一个!表示

  

类型的值' WKInterfaceSlider'没有会员'价值'。

1 个答案:

答案 0 :(得分:2)

在WatchOS上你无法读取滑块值,你必须自己跟踪它:

var sliderOneValue : Int = 0 // if you set starting values in the interface builder, you need to set them here as well
var sliderTwoValue : Int = 0 

@IBAction func sliderValueChanged(value: Float) {
    sliderOneValue = Int(round(value))
    self.label1.setText("\(sliderOneValue)")
}

@IBAction func slider2ValueChanged(value: Float) {
    sliderTwoValue = Int(round(value))
    self.label2.setText("\(sliderTwoValue)")
}

@IBAction func calculos() {
    let result = sliderOneValue + sliderTwoValue
    self.result.setText("\(result)")
}

apple docs

  

当用户更改滑块的值时,WatchKit会将新值传递给滑块的操作方法。滑块操作方法的格式如下:

     

@IBAction func sliderAction(value: Float)

     

在接口控制器类中声明此表单的方法,用于接收滑块的新值。您可以将方法名称更改为您喜欢的任何名称。在Xcode中配置滑块时,请将其选择器连接到自定义操作方法。