在 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 值

我如何制作具有步长值的 UISlider [关闭]

在 Swift 中使用 UISlider 以编程方式更改 UILabel

如何在 Swift 中使用 UISlider 更改 UIImageView 中的图像

在 Swift 中更改 UISlider 拇指的大小

UISlider Swift 的 AVPlayer 进度