2011-12-12 13 views
5

Estoy usando una animación UIView para cambiar el tamaño y traducir una vista que contiene múltiples subvistas. La animación para la vista principal ocurre perfectamente; sin embargo, las subvistas exhiben un comportamiento extraño. Cuando comienza la animación, las subvistas se redimensionan inmediatamente y luego se mueven a su posición final.Cambiar el tamaño de UIView y traducir la animación no anima las subvistas correctamente

Por ejemplo, si la duración y el retraso de la animación eran cinco segundos, tan pronto como se llamaba a la animación, las subvistas se movían a los valores deseados de fin de la animación. Después de cinco segundos, la supervista se redimensionaría y se traduciría a la deseada.

Mi código para la animación es:

[UIView animateWithDuration:0.5 animations:^{ 
    if (UIDeviceOrientationIsLandscape(self.interfaceOrientation)) { 
     self.leftPaneView.frame = leftPaneLandscapeFrame; 
     self.rightPaneContainerView.frame = rightPaneLandscapeFrame; 
    } 
    if (UIDeviceOrientationIsPortrait(self.interfaceOrientation)) { 
     CGFloat offset = 300; 
     self.leftPaneView.frame = CGRectOffset(leftPanePortraitFrame, -offset, 0); 
     self.rightPaneContainerView.frame = rightPanePortraitFrame; 
    } 
}]; 

¿Alguna idea?

Nota: rightPaneContainerView contiene la vista de un UIViewController que es un elemento secundario del controlador de vista que llama a esta animación.

+1

He echado un vistazo a su código y no puedo reproducir su problema. Como esto es solo una parte de una animación más grande, imagino que el problema tiene que ver con toda la secuencia de eventos. Si puede, comparta más del código, y tal vez algo se revelará. – GrimmRanger

+0

Gracias por echar un vistazo visceral. El modo de contenido para las subidas de salto se ajustó a la izquierda, lo que provocó el desagradable error en la animación. Un error aficionado de mi parte. – Eytan

Respuesta

7

He logrado solucionar el problema. El modo de contenido para algunas de las vistas se estableció en Izquierda. Cuando comenzó la animación, las vistas saltaban hacia la izquierda y luego se animaban con el valor de final de animación deseado.

Un error de aficionado. Gracias a todos los que echaron un vistazo.

+0

¡Buena captura! Me alegro de que lo haya resuelto, y gracias por publicar su solución! – GrimmRanger

+0

Tuve el mismo problema, gracias. – Anastasia

+0

Entonces, ¿qué 'contentMode' eligió? – Colas

Cuestiones relacionadas