Las animaciones de iOS SDK le permiten enriquecer sus aplicaciones con atractivos efectos visuales y transiciones. Con el SDK de iOS, las animaciones se utilizan con frecuencia para reposicionar vistas, redimensionar vistas, eliminar o agregar vistas de jerarquías de vistas y ocultar vistas por completo. Sigue leyendo para saber cómo se logran estos efectos.!
Para crear una animación con el SDK de iOS, no tiene que escribir ningún código de dibujo personalizado. Todo lo que tienes que hacer es activar las animaciones con unas cuantas llamadas simples y el marco de Core Animation hará el trabajo duro. Con este marco puede crear una animación en solo unas pocas líneas de código, y eso es bueno para nosotros como desarrolladores perezosos.!
En UIKit, las animaciones se realizan utilizando objetos UIView. Puede animar los cambios a las propiedades de la vista o usar animaciones de transición para reemplazar un conjunto de vistas con otro. Puedes animar las siguientes propiedades de UIView con UIKit:
Si su aplicación se ejecuta en iOS 3.2 y anteriores, debe utilizar el InicioAnimaciones: contexto:
y commitAnimations
Métodos de clase de UIView para definir tus bloques de animación. Este es el método que usaré en este consejo rápido, porque funciona en todas las versiones de iOS.
Para comenzar un bloque de animación, usarás [UIView beginAnimations: (NSString *) context: (void *)];
. Después de escribir el código para configurar su animación (es decir, cambiar las propiedades de UIView), finalizará el bloque de animación con [UIView commitAnimations];
.
Puede configurar un bloque de animación con los siguientes métodos de clase UIView:
Con el código de inicio y confirmación anterior, puede crear una animación. Para ver esto en la práctica, veamos un ejemplo:
[UIView beginAnimations: @ "My First Animation" context: nil]; [UIView setAnimationDuration: 1.0]; [UIView setAnimationDelay: 2.0]; self.view.backgroundColor = [UIColor redColor]; [UIView commitAnimations];
Como puedes ver, comencé el bloque de animación con [UIView beginAnimations: (NSString *) context: (void *)];
y lo llamé "mi primera animación". Después de eso, establezco la duración en 1 segundo y el retraso en 2 segundos, por lo que la animación comenzará después de dos segundos y tomará 1 segundo completarla. Con esta animación animo el color de fondo de la vista a un color rojo. Si el color de fondo de la vista ya era rojo, no verá la animación, pero aún así se animará. Por fin termino mi bloque de animación con [UIView commitAnimations];
.
Aquí hay una muestra de una animación donde giramos en una vista:
[UIView beginAnimations: @ "Rotate" context: nil]; [UIView setAnimationDuration: 1.0]; [UIView setAnimationDelegate: self]; [UIView setAnimationDidStopSelector: @selector (rotateBack)]; theView.transform = CGAffineTransformMakeRotation (M_PI); [UIView commitAnimations];
La configuración de este bloque de animación se ve igual que la anterior, solo que esta vez usé el delegado de animación y usé la propiedad de transformación. Si quieres usar el detuvo el selector método, tendrá que configurar el delegado a yo. Entonces, si esta animación está hecha el método. rotateBack sera llamado. Con la propiedad de transformación puede escalar, rotar o traducir una vista. La transformación siempre será en 2D. Para el ángulo de rotación utilicé M_PI como puedes ver. Por defecto, Objective-C trabaja con radianes en lugar de grados. 360 grados es lo mismo que 2 ?, por lo que la vista girará 180 grados.
- (void) rotateBack [UIView beginAnimations: @ "Rotate back" context: nil]; [UIView setAnimationDuration: 1.0]; theView.transform = CGAffineTransformIdentity; [UIView commitAnimations];
Este es el método que se llamará cuando se realice la animación de rotación. En este bloque de animación giramos la vista de nuevo a su lugar original. Lo hacemos con el CGAffineTransformIdentity
función. Esto deshará la transformación de rotación.
¿Interesado en aprender más? Puedes ver más ejemplos de animación en el código fuente adjunto..
¡Esperaba que te haya gustado este consejo rápido de iOS SDK sobre animaciones! Por favor, hágame saber sus comentarios dejando un comentario a continuación. También puede sugerir ideas para tutoriales adicionales para cubrir en el futuro.!