2011-08-14 22 views
15

Supongamos que tengo una vista oculta en Xcode para iOS. Ahora, cuando configuro la vista como no oculta (view.hidden = NO), ¿cómo puedo hacerlo para que ahora aparezca, pero con animaciones?Cómo mostrar la vista con animaciones

+0

¿Qué quiere decir "ingenio h animaciones "? –

+0

Cualquier animación, como deslizamiento o desvanecimiento, o cualquier otra animación. Cocoa touch puede proporcionar – Snowman

Respuesta

54

Lo que probablemente quiere decir que no establece view.hidden, sino para establecer view.alpha a 0 (corresponde a hidden = YES) o 1 (hidden = NO).

A continuación, puede utilizar animaciones implícitas para mostrar la vista, por ejemplo

[UIView animateWithDuration:0.3 animations:^() { 
    view.alpha = 1.0; 
}]; 
+1

Si tiene que hacer esto siempre con animación, puede anular setHidden y isHidden :) –

5

Para un fundido de luz, puede ajustar la propiedad alfa de la vista.

myView.alpha = 0; 
[UIView animateWithDuration:0.5 animations:^{ 
    myView.alpha = 1; 
}]; 

que se aplicará un fundido en más de 0,5 segundos a la vista myView. Muchas propiedades de UIView son animables; no solo estás limitado a los desvanecimientos alfa. Puede cambiar los colores de fondo, o incluso rotar y escalar una vista, con animación. Si necesita más control y animación avanzada, puede pasar a Core Animation, un marco de animación mucho más complejo.

1
-(void)showView{ 

    [UIView beginAnimations: @"Fade Out" context:nil]; 
    [UIView setAnimationDelay:0]; 
    [UIView setAnimationDuration:.5]; 
    //show your view with Fade animation lets say myView 
    [myView setHidden:FALSE]; 
    [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(hideView) userInfo:nil repeats:YES]; 

    [UIView commitAnimations]; 
} 


-(void)hideView{ 
    [UIView beginAnimations: @"Fade In" context:nil]; 
    [UIView setAnimationDelay:0]; 
    [UIView setAnimationDuration:.5]; 
    //hide your view with Fad animation 
    [myView setHidden:TRUE]; 
    [UIView commitAnimations]; 
} 

o puede tratar de esta manera

self.yourView.alpha = 0.0; 
[UIView beginAnimations:@"Fade-in" context:NULL]; 
[UIView setAnimationDuration:1.0]; 
self.yourView.alpha = 1.0; 
[UIView commitAnimations]; 
8

Si desea otras animaciones que solamente la decoloración después utilizar esta método

[UIView transitionWithView:_yourView duration:1.0 options:UIViewAnimationOptionTransitionCurlDown animations:^(void){ 

      [_yourView setHidden:NO]; 

     } completion:nil]; 
+0

Muchas gracias, funciona genial :) – evya

+0

wow ... funciona como un encanto! ¡gracias hermano! –

Cuestiones relacionadas