UIViewAnimation se reproduce instantáneamente, se ignora la demora

Tengo una simple UIViewAnimation que se llama una vez que se carga mi vista. Sin embargo, no importa lo que coloque como el valor de la demora, se ignora y la animation se reproduce instantáneamente.

[UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:100.0]; [UIView setAnimationDelay:2.0]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; [UIView setAnimationDelegate:self]; [UIView setAnimationDidStopSelector:@selector(faceRight:finished:context:)]; _chooseLabelContainer.center = CGPointMake(originalCenter.x, 0 - _chooseLabelContainer.frame.size.height); [UIView commitAnimations]; 

Actualización: como testing, he mangeled este escenario y por debajo de la animation no retrasada ocurre al instante, pero el que está dentro de la queue de despacho anima el time extra como se espera! UIView * objectToAnimate = self.hudController -> _ chooseLabelContainer;

 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC), dispatch_get_current_queue(), ^{ [UIView animateWithDuration:5.0 delay:2.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{ NSLog(@"Start Dispatch %@", NSStringFromCGPoint( objectToAnimate.center ) ); objectToAnimate.center = CGPointMake(objectToAnimate.center.x, objectToAnimate.center.y+90); }completion:^(BOOL done){ NSLog(@"Done Dispatch"); }]; }); [UIView animateWithDuration:5.0 delay:2.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{ NSLog(@"Start %@", NSStringFromCGPoint( objectToAnimate.center ) ); objectToAnimate.center = CGPointMake( objectToAnimate.center.x, objectToAnimate.center.y+30); }completion:^(BOOL done){ NSLog(@"Done"); }]; 

Esto podría no resolver su problema, pero a partir de iOS 4, Apple recomienda utilizar bloques de animation UIView:

 [UIView animateWithDuration:100.0 delay:2.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{ _chooseLabelContainer.frame = CGPointMake(originalCenter.x, 0 - _chooseLabelContainer.frame.size.height); }completion:^(BOOL done){ [self faceRight:finished:context]; //will of course generate errors since I don't know what arguments to pass. }];