iOS bringSubviewToFront bloqueando la animation UIView

Tengo un ViewController con un montón de UIImageViews que necesito enviar al frente y animar al centro de la vista.

He intentado llamar a bringSubviewToFront antes de lanzar la animation de UIView y lo que parece estar sucediendo es que la vista se envía a la parte superior de la stack, pero la animation no ocurre (aunque el logging del manejador de finalización muestra como si la animation DID sucediera )

La segunda vez que presiono el button que activa la animation (teniendo en count que esta vez la vista ya está en el índice superior, la animation se lleva a cabo como debería)

Aquí está mi código:

- (void)beginAnimationWithSelectedCountry:(UIView *)countryView { if (!countryView) return; [self.view bringSubviewToFront:countryView]; [UIView animateWithDuration:0.6f delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{ countryView.center = CGPointMake(self.view.center.x, self.view.center.y); } completion:^(BOOL finished) { NSLog(@"Animation complete"); }]; } 

¿Alguna idea? He estado en esto durante horas>. <

Gracias

EDIT: Si comento el bringSubviewToFront el código se ejecuta de manera impecable con la animation (excepto que la vista está en algunas otras vistas), así que estoy seguro de que el problema es con la línea:

 [self.view bringSubviewToFront:countryView]; 

Aquí está una captura de pantalla de lo que tengo actualmente que puede arrojar algo de luz sobre el problema: http://d.pr/i/PKoa

Llamada:

[self.view layoutSubviews];

Justo después de:

[self.view bringSubviewToFront:countryView];

Solucionará tu problema.

Cuando usted llama

 [self.view bringSubviewToFront:countryView]; 

desencadena un nuevo evento de layout de vista. Puede verificar esto estableciendo un punto de interrupción en 'viewDidLayoutSubviews' en su controller.

Tuve un problema similar: mi propio código en el método 'viewDidLayoutSubviews' canceló mi animation al restablecer los fotogtwigs de los objects que estaba intentando animar.

Intente agregar UIViewAnimationOptionAllowAnimatedContent a las opciones. Estoy casi seguro de que este es un caso de esta opción, pero juegue con las otras opciones si no es así. También puedes intentar progtwigr un bloque para ejecutar tu animation en el próximo runloop, que es una bendición, he encontrado, con animaciones.