UISlider动画持续时间

时间:2016-03-11 12:05:15

标签: ios swift uislider

我是swift的新手,我试图创建一个应用程序,其中滑块前后移动形成值为1- 100,按下按钮60秒。但是,我不知道如何制作滑块从1-100顺利移动。到目前为止,这是我的代码:

@IBOutlet weak var button: UIButton!
@IBOutlet weak var timer: UILabel!

var county = 5    
    @IBAction func animateSlider(sender: AnyObject) {if (county == 59){

        _ = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("update"), userInfo: nil, repeats: true)}

    if (county>0){
    Slider.setValue(100, animated: true)


    }

问题? UISlider值立即从1-100移动。所以,如何将此动画减速到5秒左右?

我知道一个类似的线程,但我是Swift的新手,我相信另一个线程是用Objective-C编写的。因此,如果有人能帮我解释一下swift,我很乐意。谢谢。 !

1 个答案:

答案 0 :(得分:0)

    @IBAction func uiSliderShowProgress(sender: UISlider) {
if sender.value == 100 {
    var transition: CATransition = CATransition()
    transition.startProgress = 0
    transition.endProgress = 1.0
    transition.duration = 0.8
    uiSliderShowProgress.layer.addAnimation(transition, forKey: "transition")
    uiSliderShowProgress.value = 0
    lblSliderProgress.text = "\(Int(uiSliderShowProgress.value))"
}
else {
    var transition: CATransition = CATransition()
    transition.startProgress = 0
    transition.endProgress = 1.0
    transition.duration = 0.8
    uiSliderShowProgress.layer.addAnimation(transition, forKey: "transition")
    uiSliderShowProgress.value = 100
    lblSliderProgress.text = "\(Int(uiSliderShowProgress.value))"
}
}

@IBAction func btnChangeSliderValueClick(sender: UIButton) {
    self.uiSliderShowProgress(uiSliderShowProgress)
}

这会在按钮点击时将滑块的值从0-100和100-0改变,并使滑块的拇指淡入和淡出,造成延迟的错觉!希望这会对你有所帮助......

相关问题