2012-09-17 12 views
24

Estoy trabajando en un sistema de notificación en mi iPhone y quiero que aparezca una imagen en la pantalla y desaparezca automáticamente después de 2 segundos.Mostrar y fundir UIImageView después de 2 segundos

  1. usuario hace clic en un botón que llama al método "popupImage"
  2. Aparece una imagen en la pantalla en un lugar designado, que no necesita a desvanecerse en
  3. La imagen se desvanece por sí mismo después de haber sido en la pantalla por 2 segundos.

¿Hay alguna forma de hacerlo? Gracias de antemano.

Respuesta

53

Uso UIView métodos dedicados para eso.

Así que imagina que ya tienes tu UIImageView listo, ya creado y agregado a la vista principal, pero simplemente escondido. Su método sólo tiene que hacerlo visible, y empezar una animación de 2 segundos más tarde a desvanecerse a cabo, por la animación de su propiedad "alfa" de 1.0 a 0,0 (en una animación 0,5s):

-(IBAction)popupImage 
{ 
    imageView.hidden = NO; 
    imageView.alpha = 1.0f; 
    // Then fades it away after 2 seconds (the cross-fade animation will take 0.5s) 
    [UIView animateWithDuration:0.5 delay:2.0 options:0 animations:^{ 
     // Animate the alpha value of your imageView from 1.0 to 0.0 here 
     imageView.alpha = 0.0f; 
    } completion:^(BOOL finished) { 
     // Once the animation is completed and the alpha has gone to 0.0, hide the view for good 
     imageView.hidden = YES; 
    }]; 
} 

Tan simple como eso !

+0

Gracias por esto! –

+0

Gracias, esto me ayuda. – Shivaay

+0

http://stackoverflow.com/a/29080894/1442541 – evya

0

Sí, sí. Eche un vistazo a UIView animación basada en bloques here. Y google para un ejemplo.

+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations 

También puede iniciar un timer

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats 
10

En Swift y XCode 6

self.overlay.hidden = false 
UIView.animateWithDuration(2, delay:5, options:UIViewAnimationOptions.TransitionFlipFromTop, animations: { 
    self.overlay.alpha = 0 
    }, completion: { finished in 
    self.overlay.hidden = true 
}) 

donde superposición es la salida para mi imagen.

2

Swift versión 3 de @AliSoftware 's respuesta

imageView.isHidden = false 
imageView.alpha = 1.0 

UIView.animate(withDuration: 0.5, delay: 2.0, options: [], animations: { 

      self.imageView.alpha = 0.0 

     }) { (finished: Bool) in 

      self.imageView.isHidden = true 
     } 
Cuestiones relacionadas