2016-03-23 3 views
0

ProgressBar zeigt nur den Fortschritt an, wenn die Schleife endet. Wie in diesem Beispiel für die Bar in Echtzeit aktualisiert werden?ProgressBar Anzeige nur Ende

@IBAction func btnStart(sender: AnyObject) { 
    for var xx:Float = 0 ; xx<=1.0; xx=xx+0.00001 { 
     progressView.setProgress(xx, animated: false) 
    } 
} 
@IBOutlet weak var progressLabel: UILabel! 
@IBOutlet weak var progressView: UIProgressView! 

Antwort

1

UI nur Updates in der Hauptschleife und am Ende des aktuellen Bereichs,

so versuchen, diese

@IBAction func btnStart(sender: AnyObject) { 
    NSThread.detachNewThreadSelector("process", toTarget: self, withObject: nil) 
} 

func process() { 
    for var xx:Float = 0 ; xx<=1.0; xx=xx+0.00001 { 
     dispatch_async(dispatch_get_main_queue(), { 
      progressView.setProgress(xx, animated: false) 
     }) 
    } 
} 

@IBOutlet weak var progressLabel: UILabel! 
@IBOutlet weak var progressView: UIProgressView!