title: Swift: removeFromSubview happens before animation
body: <p>I have a little setup where I have an MPMoviePlayerController setup as a video background. I'm trying to get it to have a smooth transition when it updates/changes. Here's my current code. BTW, newBackground.view.alpha is initially 0.</p>
  
  <pre><code>let oldBackground = currentBackground
  
  self.view.insertSubview(newBackground.view, aboveSubview: oldBackground.view)
    UIView.animateWithDuration(1.5 as NSTimeInterval, animations: {
      newBackground.view.alpha = 1
      }, completion: {
        finished in
        oldBackground.view.removeFromSuperview()
        println("The subview should be removed now")
    })
  </code></pre>
  
  <p>When this executes, the oldBackground.view is immediately removed before the newBackground starts to fade in. The println, however, happens after the animation is completed. I don't understand why the removeFromSuperview happens immediately, but the println happens when I expect it to. If I remove <code>oldBackground.view.removeFromSuperview()</code>, the animation fades in and looks fine (but the view obviously hasn't been removed, it's just sitting behind newBackground).</p>
  
  <p>EDIT: <strong>Bizarrely enough, it seems to work as expected in the simulator. Running on my iPhone 6 Plus gives me the issue every time. I've uninstalled and re-run it from Xcode and the problem persists.</strong></p>
  
  <p>If anyone has any advice for me, I would be very happy. Thank you.</p>