Je travaille sur un système de notification dans mon jeu iPhone et je veux qu'une image apparaisse à l'écran et disparaisse automatiquement après 2 secondes.
Y a-t-il une manière de faire ça? Merci d'avance.
Utilisez UIView
des méthodes dédiées pour cela.
Imaginez donc que vous avez déjà votre UIImageView
prêt, déjà créé et ajouté à la vue principale, mais simplement caché. Votre méthode doit simplement la rendre visible, et démarrer une animation 2 secondes plus tard pour la faire disparaître, en animant sa propriété "alpha" de 1.0 à 0.0 (pendant une animation 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;
}];
}
Aussi simple que cela!
Dans Swift et 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
})
où la superposition est la sortie de mon image.
Version Swift 3 de @ AliSoftware's answer
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
}
Oui il y a. Jetez un œil à l'animation basée sur les blocs UIView
ici . Et google pour un exemple.
+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations
Vous pouvez également démarrer un timer
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats