2017-02-21 16 views
1

我已经成功地印在标签的UISlider的值:在斯威夫特:如何使用uislider值作为变量使用下面的代码来设置转速

@IBAction func valueChanged(_ sender: UISlider) { 

    var currentValue: String = String(Int(sender.value)) 
    statusLabel.text = currentValue 
    } 

Label showing UISlider value.

我想要什么现在要做的是在下面的代码中使用该值作为变量“a”,该代码设置精灵旋转的持续时间。

let rotation = SKAction.rotate(byAngle: .pi * -1, duration: a) 
    let infiniteRotation = SKAction.repeatForever(rotation) 

    centerNode.run(infiniteRotation) 

谢谢。

+0

时间?秒?毫秒?另外,什么不工作?你在问如何将价值传递给这个? –

+0

我在1到5之间使用的任何数字都会得到我想要的结果。我假设他们被视为秒。我搜索了“UISlider传递价值”,但所有例子都是为了创建一个标签。我想将值传递给上面代码中标记为“a”的“TimeInterval”,以便使用滑块更改旋转的速度。 – parskahye

回答

0

只需使用全局变量...

var timeAmount = 0 
@IBAction func sliderValueChanged(sender: UISlider) { 
    timeAmount = Int(sender.value) 
    println("Slider and timeAmount changing to \(timeAmount) ?") 
} 

,然后在功能旋转,只需使用:在什么

func __somefunction__(some params){ 

    ... 

    let rotation = SKAction.rotate(byAngle: .pi * -1, duration: timeAmount) 
    let infiniteRotation = SKAction.repeatForever(rotation) 
    centerNode.run(infiniteRotation) 

    ... 

} 
+0

谢谢。我运行代码,然后得到错误消息:“使用未解析的标识符”timeAmount“。我在这里找到解决方案:http://stackoverflow.com/questions/34950777/swift-use-of-unresolved-identifier 1 )右键点击你的MainViewController.swift 2)选择显示文件检查器 3)在右侧面板,看看目标会员 4)添加类目标由勾选 它摆脱了错误信息,但现在我只用我的UISlider屏幕,没有别的,我会做一些研究,如果我找不到解决方案,我会通过链接到这个页面发布。 – parskahye