title: simple UIView animation chain not working
body: <p>I'm trying to slide a UIImageView into a UIView, and fade it in at the same time.  And then I want it to fade and slide out.
    The code below should do this, but it doesn't.
   Instead, the leftArrow view is at full alpha when it slides in. So the first animation is skipping the alpha fade-in.  Then the second animation just fades it out, it does not move the leftArrow view.  I've tried lots of variations (using bounds instead of frames, doing the animation in a class method (as opposed to an instance method), and I cannot determine why the view seems to arbitrarily pick one thing to do rather than the other, or both.
  Maybe I just need fresh eyes.
  TIA,
  Mike</p>
  
  <pre><code>- (void) flashHorizontalArrowsForView: (UIView *)view {
  DebugLog(@" flashHorizontalArrows");
  
  
      float duration = 1.5f;
  
      // create the views
      UIImageView *leftArrow = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"leftCouponDetailArrow.png"]];
      leftArrow.frame = CGRectMake(0 -leftArrow.image.size.width, 
                                   HORIZONTAL_ARROW_START_Y, 
                                   leftArrow.image.size.width, 
                                   leftArrow.image.size.height);
  
      [view addSubview:leftArrow];
      leftArrow.alpha =  0.0f;
  
      // animate them in...
      [UIView beginAnimations:@"foo" context:leftArrow];
      [UIView setAnimationDelay:    0.0f ];       // in seconds   
      [UIView setAnimationDuration: duration ];
      [UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
      [UIView setAnimationDidStopSelector:@selector(animationReallyDidStop:finished:context:)];
      [UIView setAnimationDelegate:self];
  
      leftArrow.alpha = 1.0f;
  
      CGRect LFrame = leftArrow.frame;
      LFrame.origin.x += LFrame.size.width;  // move it in from the left.
      leftArrow.frame = LFrame;
  
      [UIView commitAnimations];
  
      // and animate them out
      // delay enough for the first one to finish  
      [UIView beginAnimations:@"bar" context:leftArrow];
      [UIView setAnimationDelay:    duration+0.05 ];       // in seconds  
      [UIView setAnimationDuration: duration ];
      [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
      [UIView setAnimationDidStopSelector:@selector(animationReallyDidStop:finished:context:)];
      [UIView setAnimationDelegate:self];
      leftArrow.alpha  = 0.0f;
  
      CGRect LLFrame = leftArrow.bounds;
      LLFrame.origin.x -= LLFrame.size.width;  // move it off to the left.
      leftArrow.bounds = LLFrame;
  
      [UIView commitAnimations];
  </code></pre>
  
  <p>}</p>