que framework iphone animation uiview

iphone - framework - uikit ios



animaciĆ³n addSubview (5)

Tengo UIView principal donde visualizo diferentes datos. Luego coloco un botón, que muestra una subvista como esta:

- (IBAction) buttonClicked:(id)sender { UIView *newView = [[UIView alloc] initWithFrame:CGRectMake(25,25,50,20)]; UILabel *newLabel = [[UILabel alloc] initWithFrame:CGRectMake(25,25,50,25)]; newLabel.text = @"some text"; [newView addSubview:newLabel]; [self.view addSubview:newView]; [newLabel release]; [newView release]; }

newView parece estar bien, pero no se anima de ninguna manera, simplemente aparece de inmediato. ¿Cómo puedo agregar algún tipo de animación cuando aparece newView? Como hacer zoom o deslizarse hacia abajo o algo así. ¿Hay algún código simple?


Descubrí que incluso con los bloques y opciones de animación, intentar animar addSubview solo no me haría nada. Encontré una solución que consiste en establecer el alfa de la subvista en 0.0, agregar la subvista y luego animar la configuración del alfa de 0.0 a 1.0. Esto me da el efecto de desvanecimiento que estaba buscando.

Espero que esto ayude a alguien más.

UIView *redView = [[UIView alloc] initWithFrame:CGRectMake(20, 20, 100, 100)]; redView.backgroundColor = [UIColor redColor]; redView.alpha = 0.0; [self.view addSubview:redView]; [UIView animateWithDuration:0.5 animations:^{ redView.alpha = 1.0; }];


Hagamos esto a la ligera.

var redView = UIView(frame:CGRectMake(20,20,100,100)) redView.backgroundColor = UIColor.redColor redView.alpha = 0.0 view.addSubview(redView) UIView.animateWithDuration(0.25) { () -> Void in redView.alpha = 1.0 }

Agregar una subvista no se puede animar simplemente colocándola en un bloque animateWithDuration. Y no puede ser animado usando oculto.


Hola, podrías usar las animaciones de UIView:

[newView setFrame:CGRectMake( 0.0f, 480.0f, 320.0f, 480.0f)]; //notice this is OFF screen! [UIView beginAnimations:@"animateTableView" context:nil]; [UIView setAnimationDuration:0.4]; [newView setFrame:CGRectMake( 0.0f, 0.0f, 320.0f, 480.0f)]; //notice this is ON screen! [UIView commitAnimations];

El SDK ahora lo resolverá y animará la vista de las posiciones que le asignó. Esto funciona para la mayoría de las propiedades de UIViews: alfa, escala, límites, marcos, etc.

También hay compilación en animaciones como flip and curl:

[UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:1.0]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:newView cache:YES]; [self.navigationController.view addSubview:settingsView.view]; [UIView commitAnimations];

Espero que esto te ayude a empezar :)


enlace contra el marco QuarzCore

#import <QuartzCore/QuartzCore.h> CATransition *transition = [CATransition animation]; transition.duration = 1.0; transition.type = kCATransitionPush; //choose your animation [newView.layer addAnimation:transition forKey:nil]; [self.view addSubview:newView];


este es para uso recomendado:

[UIView transitionWithView:containerView duration:0.5 options:UIViewAnimationOptionTransitionCurlUp //change to whatever animation you like animations:^ { [containerView addSubview:subview]; } completion:nil];