在 Swift 中:如何使用 uislider 值作为变量来设置旋转速度
Posted
技术标签:
【中文标题】在 Swift 中:如何使用 uislider 值作为变量来设置旋转速度【英文标题】:In Swift: How to use uislider value as a variable to set rotation speed 【发布时间】:2017-02-21 04:45:42 【问题描述】:我已经使用下面的代码成功地在标签中打印了 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)
谢谢。
【问题讨论】:
持续时间是多少?秒?毫秒?另外,什么不工作?您是在问如何将值传递给这个? 我使用 1 到 5 之间的任何数字都会得到我想要的结果。我假设它们被视为秒。我搜索了“UISlider 传递值”,但所有示例都是用于创建标签。我想将值传递给上面代码中标记为“a”的“TimeInterval”,以使用滑块更改旋转速度。 【参考方案1】:只需使用一个全局变量...
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)
...
【讨论】:
谢谢。我运行代码,然后收到错误消息:“使用未解析的标识符“timeAmount”。我在这里找到了解决方案:***.com/questions/34950777/… 1)右键单击您的 MainViewController.swift 2)选择显示文件检查器 3)在右侧面板上,查看 Target Membership 4) 通过选中复选框将您的类添加到目标它摆脱了错误消息,但现在我得到一个只有 UISlider 的屏幕,没有其他任何东西。我会做一些研究。如果我没有找到解决方案我将发布此页面的链接。上帝保佑!以上是关于在 Swift 中:如何使用 uislider 值作为变量来设置旋转速度的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 中使用 UISlider 以编程方式更改 UILabel