Cómo implementar la animación de transición de la aplicación Ping
La clase CATransition implementa animación de transición de capas. Puede especificar efectos de transición a partir de un conjunto de transiciones predefinidas o proporcionando una instancia de CIFilter personalizada.
//Definir una animación de transición
CATransition *animation = [CATransition Animation];
//Duración de la animación de transición
animación .duration = 0.2f;
//Función de sincronización, ¿suavidad de principio a fin?
animation.timingFunction=UIViewAnimationCurveEaseInOut;
//Tipo de animación de transición
animation.type = kCATransitionReveal;
//Transición La dirección la animación continuará
animation.subtype = kCATransitionFromBottom;
//La implementación que necesitas para la animación
self.tabBarController.tabBar.hidden = YES <; /p>
//Agregar animación (la animación de transición es una animación agregada en la capa)
self.tabBarController.tabBar.layer addAnimation: animación forKey: @"animation"];
p>
Descripción:
duración: la duración de la animación.
TimingFunction: No entiendo (alguien puede explicarlo por favor)
Tipo: El tipo de animación de transición. Si el atributo de filtro se especifica en una animación de transición personalizada, este atributo se ignorará.
type*** tiene cuatro tipos:
NSString * const kCATransitionFade; // desaparece gradualmente
NSString * const kCATransitionMoveIn // entra
NSString * const kCATransitionPush; //Traducción (llamémoslo así por ahora)
NSString * const kCATransitionReveal; //Revelar
El tipo predeterminado es kCATransitionFade.
subtipo: La dirección en la que irá la animación de transición.
Hay cuatro tipos de subtpye:
NSString * const kCATransitionFromRight;
NSString * const kCATransitionFromLeft
NSString * const kCATransitionFromTop;
NSString * const kCATransitionFromBottom;
La dirección predeterminada es nula.
[self.tabBarController.tabBar.layer addAnimation: animación forKey: @"animation"];
¡La animación de transición se agrega a la capa!
cambiar (btn.tag) {
caso 0:
animation.type = @"cubo" //---cubo
break;
caso 1:
animation.type = @"suckEffect"; //103 efecto de succión
break;
caso 2: //Efecto de volteo antes y después
animation.type = @"oglFlip"; //Cuando el subtipo es "fromLeft" o "fromRight", es el oficial.
break;
caso 3:
animation.type = @"rippleEffect"; //110 efecto dominó
break;
caso 4:
animation.type = @"pageCurl"; //101 pasa la página
salto;
caso 5:
animation.type = @"pageUnCurl"; //102 página hacia abajo
descanso;
caso 6:
animation.type = @" cameraIrisHollowOpen ";//107//La cámara está abierta
descanso;
caso 7:
animation.type = @"cameraIrisHollowClose";//106 La la cámara está cerrada
descanso
predeterminado:
descanso
}