title: does animateWithDuration:animations: block main thread?
body: <p>I have connected the two methods below to separate buttons in my UI but have noticed that after pressing the "VERSION 1" button that I could not press the button again until the animation duration within the method had ended. My understanding was that the animation uses its own thread so as not to block the main application.</p>
  
  <pre><code>// VERSION 1
  -(IBAction)fadeUsingBlock {
      NSLog(@"V1: Clicked ...");
      [myLabel setAlpha:1.0];
      [UIView animateWithDuration:1.5 animations:^{
          [myLabel setAlpha:0.0];
      }];
  }
  </code></pre>
  
  <p>The older style version (below) does allow the button to be repressed before the animation timer ends, simply resetting the timer to start again. Should these both work the same, am I missing something or has there been a change in operation between 3.2 and 4?</p>
  
  <pre><code>// VERSION 2
  -(IBAction)fadeUsingOld {
      NSLog(@"V2: Clicked ...");
      [myLabel setAlpha:1.0];
      [UIView beginAnimations:nil context:nil];
      [UIView setAnimationDuration:1.5];
      [myLabel setAlpha:0.0];
      [UIView commitAnimations];
  }
  </code></pre>
  
  <p>Cheers gary</p>