UIView имеет setAnimationDidStopSelector: метод, который вы можете использовать. Просто настройте анимацию затухания с помощью блока beginAnimations и установите селектор didStop на другой метод, который содержит только блок анимации затухания. Каждый из этих блоков анимации может иметь различную продолжительность анимации.
Примерно так:
[UIView beginAnimations:next context:context];
[UIView setAnimationDuration:0.5];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(fadeOut:finished:context:)];
myView.alpha = 0.7;
[UIView commitAnimations];
-(void)fadeOut:(NSString*)animationID finished:(BOOL)finished context:(void*)context {
[UIView beginAnimations:nil context:context];
[UIView setAnimationDuration:0.2];
myView.alpha = 0.0;
[UIView commitAnimations];
}