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.
- El usuario hace clic en un botón que llama al método "popupImage"
- Aparece una imagen en la pantalla en un lugar designado, no necesita desvanecerse
- 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!