0

Ich spiele mit ProgressView. Was ich erreichen möchte, ist bei 33%, 66%, 100% Checkpoints auf Knopfdruck zu stoppen. Es funktioniert in Ordnung, wenn ich progressView.progress = 0.33 verwende, aber es landet direkt zum Checkpoint. Stattdessen würde es glatt und beschleunigt aussehen.Smooth und Accelerating ProgressView

Ich dachte, animateWithDuration würde funktionieren, aber leider nicht. Nach einigem Lesen habe ich herausgefunden, dass ich etwas mit NSTimer machen kann, aber ich konnte es nicht erreichen.

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, ich erreichte es in jeder Sekunde einmal machen bewegen, aber wie kann ich es glatt, langsam geht am Anfang machen und zu beschleunigen, so schön aussieht.

Antwort

1

Mit der Methode setProgress und der Einstellung der Animation auf true wird die Animation aktiviert.

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

}