我正在玩ProgressView。我要达到的目标是单击按钮时分别在33%,66%,100%检查点停止。如果我使用progressView.progress = 0.33可以正常工作,但是它直接降落到检查点。取而代之的是,让它平滑并加速看起来真不错。

我以为animateWithDuration可以工作,但不幸的是,它不能。经过一番阅读后,我发现我可以使用NSTimer进行某些操作,但无法实现。

var progressView: UIProgressView?

override func viewDidLoad()
{
    super.viewDidLoad()

    progressView = UIProgressView(progressViewStyle: UIProgressViewStyle.Default)
    progressView?.center = self.view.center

    progressView?.trackTintColor = UIColor.redColor()
    progressView?.progressTintColor = UIColor.greenColor()

    view.addSubview(progressView!)

    progressView!.progress = 0.0
}


Using this answer,我实现了使其每秒移动一次,但是如何使它平稳,起步缓慢并加速,所以看起来不错。

最佳答案

使用setProgress方法并将动画设置为true可使动画工作。

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var pb: UIProgressView!
@IBOutlet weak var btn: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view,  typically from a nib.
    pb.progress = 0.00
}
@IBAction func btnPress(sender: UIButton) {

    UIView.animateWithDuration(3, animations: {
        self.pb.setProgress((self.pb.progress + 0.33), animated: true)
        }, completion: nil)
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


}

10-08 07:25