ios xcode animation uiimage fadeout

ios - Mostrar y fundir UIImageView después de 2 segundos



xcode animation (4)

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 la superposición es la salida para mi imagen.

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.

  1. El usuario hace clic en un botón que llama al método "popupImage"
  2. Aparece una imagen en la pantalla en un lugar designado, no necesita desvanecerse
  3. La imagen desaparece por sí misma después de estar en la pantalla durante 2 segundos.

¿Hay alguna forma de hacer esto? Gracias de antemano.


Sí hay. Eche un vistazo a la animación basada en bloques de UIView 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


Swift 3 versión de la respuesta de @AliSoftware

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 }


Use los métodos dedicados de UIView para eso.

Así que imagina que ya tienes tu UIImageView listo, ya creado y agregado a la vista principal, pero simplemente oculto. Su método simplemente necesita hacerlo visible, y comenzar una animación 2 segundos después para atenuarlo, animando su propiedad "alfa" de 1.0 a 0.0 (durante una animación de 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; }]; }

¡Simple como eso!