title: Swift UIProgressView on main thread, updates property but not UI
body: <p>I have a UIProgressView set as an IBOutlet and I'm trying to call the setProgress method. It works just fine the first time it's called in viewDidLayoutSubviews(), but nowhere else.</p>
  
  <p>I'm calling it on the main thread using </p>
  
  <pre><code>func calculateEXP()
      dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
  
          //Determining playerExpBar's new value  
          let gainedEXP = Float.random(lowerEXP...upperEXP)
          let progress = (currentEXP + gainedEXP) / maxEXP
  
          //Setting playerExpBar's progress on the main thread
          dispatch_async(dispatch_get_main_queue()) {
               //Set value to 0.5 for testing purposes
               self.playerExpBar.setProgress(0.5, animated: true)
  
               print(self.playerExpBar.progress)
          }
      }
  </code></pre>
  
  <p>}</p>
  
  <p>It's printing the updated value but doesn't reflect in the UI. </p>
  
  <p>Working when called in viewDidLayoutSubviews()</p>
  
  <pre><code>override func viewDidLayoutSubviews() {
      dispatch_async(dispatch_get_main_queue()) {
          self.playerExpBar.setProgress(0.0, animated: true)
      }
  }
  </code></pre>