Tengo una vista que quiero escalar y traducir a una nueva ubicación animándola. Traté de alcanzarlo con el siguiente código:Animación UIVIew - Escala + Traslación
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:kDurationForFullScreenAnimation];
[[self animatingView] setFrame:finalRect];
[UIView commitAnimations];
El efecto de este código es, la vista primero cambia el tamaño de su contenido a la finalRect y luego lo traduce a la nueva ubicación. es decir, la parte de escalado nunca está animada. La vista simplemente se transforma al nuevo tamaño y luego se traduce.
Este problema ya se discutió en varios otros hilos, pero ninguno de ellos llega a una conclusión. Sin embargo, existe una solución para usar un temporizador y establecer el marco cada vez en la devolución de llamada del temporizador, pero tiene un inconveniente de rendimiento.
¿Cuál es la solución más adecuada para este problema, también, por qué en el primer caso se produce este problema?
Gracias
La cosa es, si lo hago de esta manera, el contenido de vista y todos sus sub-vistas asumir la newRect inmediatamente . No están animados para el nuevo marco. Como decir que tienes un imageView como subvista a la vista de animación, la imagen en imageView no se escala gradualmente. En lugar de eso, la imagen se expande primero a newRect y luego los límites de la vista se escalan + se traducen.Sin embargo, cambiar el centro funciona en el bloque de animación, pero cambiar los límites no es el esperado. –