我正在玩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.
}
}