title: Animate hidden property on UILabels in UIStackView causes different animations
body: <p><code>UIStackView</code> makes it really easy to create a nice animation using the hidden property of a UIView. I have two <code>UIStackViews</code> each with <code>UILabels</code> in the <code>arrangedSubviews</code> and when I add a new <code>UILabel</code> to a <code>UIStackView</code>, it should present it with an animation of the label appearing at the correct index, pushing the labels above and below it. </p>
  
  <p>This effect is very easy to do using <code>UIStackViews</code>:</p>
  
  <pre><code>descriptionLabel.hidden = true 
  
  let count = descriptionStack.arrangedSubviews.count
  descriptionStack.insertArrangedSubview(expenseLabel.descriptionLabel, atIndex: count - 1)
  
  UIView.animateWithDuration(0.5) {
    descriptionLabel.hidden = false
  }
  </code></pre>
  
  <p>I want to do this effect simultaneously for two different <code>UIStackViews</code>, but this causes some weird behaviour, where one is animated correctly while the other drops in from the top of the view.
  Assuming that the above code can be repeated for some other view and create the same animation:</p>
  
  <pre><code>descriptionLabel.hidden = true 
  costLabel.hidden = true
  
  let count = descriptionStack.arrangedSubviews.count
  descriptionStack.insertArrangedSubview(expenseLabel.descriptionLabel, atIndex: count - 1)
  costStack.insertArrangedSubview(expenseLabel.costLabel, atIndex: count - 1)
  
  UIView.animateWithDuration(0.5) {
    descriptionLabel.hidden = false
    UIView.animateWithDuration(0.5) {
      costLabel.hidden = false
    }
  }
  </code></pre>
  
  <p>In this example, the <code>costLabel</code> is animated correctly, while <code>descriptionLabel</code> drops in from the top of the <code>UIStackView</code>. Reversing the order causes the <code>costLabel</code> to drop in and <code>descriptionLabel</code> to animate correctly.</p>
  
  <p>I've tried variations of this animation code e.g. not nesting the animations and using <code>UIView.animateKeyframesWithDuration</code>.</p>
  
  <p>Doing it as below, causes the <code>costLabel</code> to drop in and the <code>descriptionLabel</code> to animate correctly:</p>
  
  <pre><code>UIView.animateWithDuration(0.5) {
    descriptionLabel.hidden = false
  }
  
  UIView.animateWithDuration(0.5) {
    costLabel.hidden = false
  }
  </code></pre>
  
  <p>I cannot figure out why the animations are always different from each other. How do I animate both labels simultaneously and having the effect where they appear at the correct index, pushing the labels above and below?</p>