ios - 如何通过按一下按钮将 UISlider 缓慢地向左或向右移动?

标签 ios swift uislider

我有这两个按钮,如果我按下左边的按钮,我希望 slider 一直向左缓慢移动,当我按下右边的按钮一直移动 slider 时,也是如此向右。我现在拥有的代码非常快速地移动 slider ,我希望它是逐渐移动的。

override func didMoveToView(view: SKView) {

        middleSlider = UISlider(frame: CGRectMake(self.view!.bounds.width/2 - 150/2, self.view!.bounds.height/2 * 1.7, 150, 50))
        middleSlider.tintColor = UIColor.whiteColor()
        middleSlider.minimumTrackTintColor = UIColor.whiteColor()
        middleSlider.maximumTrackTintColor = UIColor.whiteColor()
        middleSlider.setThumbImage(UIImage(named: "mixerb1"), forState: UIControlState.Normal)
        middleSlider.maximumValue = 2.0
        middleSlider.minimumValue =  0.0
        middleSlider.value = 1.0
        middleSlider.continuous = true
        middleSlider.userInteractionEnabled = true
        middleSlider.addTarget(self, action: #selector(middleSliderChangeAudio), forControlEvents: UIControlEvents.AllEvents)
        self.view?.addSubview(middleSlider)

}


override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        let location = touch.locationInNode(self)
        let node = self.nodeAtPoint(location)


        if node.name == "left" {
        print("slider moves to left")

        UIView.animateWithDuration(10.0, animations: {
            self.middleSlider.value = self.middleSlider.minimumValue
            self.middleSlider.continuous = true
      }
   )
}


    if node.name == "right" {
    print("slider moves to right")

        UIView.animateWithDuration(10.0, animations: {
            self.middleSlider.value = self.middleSlider.maximumValue
            self.middleSlider.continuous = true
            }
        )
    }
}

最佳答案

在这里使用 setValue(_:animated:) 方法 Documentation . 让我们知道进展如何。

一旦你添加了它,将它包裹在你的动画中,持续时间如下。请注意,10 秒只是一个硬编码值,将持续时间更改为您想要的任何值,这同样适用于您想要设置的值。

@IBAction func moveSlider(sender: UIButton) {
    UIView.animateWithDuration(10, animations: {
        self.slider.setValue(1.0, animated: true)
    })


}

当您在此处时,向上滚动一点以查看属性值的文档。这样您就可以更好地了解正在发生的事情。

关于ios - 如何通过按一下按钮将 UISlider 缓慢地向左或向右移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38407336/

相关文章:

swift - UISlider 自定义拇指形状

ios - 动态 UITableView 中的 UISlider

ios - 类保留计数

ios - 为什么我的 SwiftUI 应用程序在将 `NavigationLink` 放入 `navigationBarItems` 中的 `NavigationView` 中后向后导航时会崩溃?

ios - 如何禁用 uitextField.rightView 的编辑功能。

swift - 仅将特定类型作为参数传递给函数

android - ios的地理定位精度

ios - 使用 Swift 4 Decodable 将字符串 JSON 响应转换为 bool 值

ios - 获取两个用户输入以求和并显示

javascript - 使用 CSS 缩放时,jquery-ui slider 行为错误