2009-12-11 5 views
6

¿Esto es posible? Puedo cambiar la opacidad y la posición (centro) de la capa, pero cada vez que trato de cambiar el tamaño o el origen, no funciona.Cambiar el tamaño y mover una UIView con Core Animation (CAKeyFrameAnimation)

CAAnimationGroup* anigroup = [CAAnimationGroup new]; 

    CGMutablePathRef thePath = CGPathCreateMutable(); 
    CGPathAddRect(thePath, NULL, CGRectMake(0,0, 320, 480)); 
    CGPathAddRect(thePath, NULL, CGRectMake(location.x - 16,location.y-24, 32, 48)); 
    CGPathAddRect(thePath, NULL, CGRectMake(190, 20, 32, 48)); 


    CAKeyframeAnimation* AniLoc = [CAKeyframeAnimation animationWithKeyPath:@"frame"]; 
    AniLoc.path = thePath; 
    AniLoc.keyTimes= [NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0f], 
              [NSNumber numberWithFloat:0.3f], 
              [NSNumber numberWithFloat:1.0f],nil]; 
    AniLoc.duration = 5; 

    CFRelease(thePath); 

    anigroup.animations = [NSArray arrayWithObjects:AniLoc,nil]; 
    anigroup.duration = 5; 

    [focusview.layer addAnimation:anigroup forKey:nil]; 

Respuesta

10

ambos pueden cambiar el tamaño y la posición de un punto de vista o capa en una animación, pero que querrá hacerlo como un grupo de animación, no creando un camino de una serie de rectángulos.

Proporciono un ejemplo de una animación agrupada que mueve una vista a lo largo de una ruta mientras la reduce y disminuye su opacidad en mi respuesta here. Esto funciona mediante el uso de CAKeyframeAnimation para la ruta curva que sigue la vista (solo animando su posición), y luego usando una animación básica para ajustar el tamaño de los límites de la vista. También podría usar CAKeyframeAnimation allí, con múltiples CGSizes para cada fotograma clave que desee, asegurándose de envolverlos en un NSValue antes de colocarlos en un NSArray de fotogramas clave.

Para animar dos propiedades a la vez, envuelvo las dos animaciones en un CAAnimationGroup y las aplico a la capa de la vista.

+0

Impresionante, esto es justo lo que estaba buscando. ¡Gracias! – ACBurk

Cuestiones relacionadas