0

私はProgressViewで遊んでいます。私が達成したいのは、ボタンクリックで33%、66%、100%のチェックポイントで停止することです。 progressView.progress = 0.33を使用すると問題なく動作しますが、チェックポイントに直接着陸します。代わりに、それをスムーズにして加速するととても素敵に見えます。滑らかで加速的なProgressView

私は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、私はそれが毎秒に一回移動すること達成が、どのように私はそれは、スムーズな始まりが遅く、加速行かせることができ、とても素敵に見えます。

答えて

1

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. 
} 

}