title: Nested UIVIew animateWithDuration not respecting completion
body: <p>I want to do some graphical elements to dissapear, move the background image and new ones will appear. The problem is when background moves new ones appear before background movement animation has completed.
  I have not seen a good answer in related questions so I'll appreciate any help.
   Pseudocode:</p>
  
  <pre><code>-(void)method1 {
  [UIView animateWithDuration:0.6
                        delay:0.0 options:UIViewAnimationOptionCurveEaseIn
                   animations:^{
                       self.setThisOne.hidden = YES;
                       self.setThisAnother.hidden = YES;
                   }completion:^(BOOL finished) {
                       [UIView animateWithDuration:0.6
                                             delay:0.3
                                           options: UIViewAnimationOptionCurveEaseIn
                                        animations:^{ self.background.frame = myFrame; //Move background image
                                        } completion:^(BOOL finished){
                                            if (finished) {
                                                [self method2];
                                            }
                                        }
                        ];
                   }];
  </code></pre>
  
  <p>}</p>
  
  <pre><code>-(void)method2 {
      [UIView animateWithDuration:0.2
                        delay:0.3
                      options: UIViewAnimationOptionBeginFromCurrentState
                   animations:^{
                       self.aButtonsAppear.hidden = NO;
                       self.moreElementsApeear.hidden = NO
                   } completion:nil];
  </code></pre>
  
  <p>}</p>