Comment puis-je afficher un message dans Swift qui disparaît après 3 secondes ou peut être annulé par l'utilisateur voit tout de suite?
Dans ma swift application j'ai un UIViewController avec un seul bouton.
Ce bouton appelle une fonction qui appelle une popup qui disparaît au bout de 3 secondes. Aussi, après cette époque, il affiche un message à la console. Le code de cette fonction est la suivante:
func showAlertMsg(title: String, message: String){
let alertController = UIAlertController(title: title, message: message, preferredStyle: .Alert)
self.presentViewController(alertController, animated: true, completion: nil)
let delay = 3.0 * Double(NSEC_PER_SEC)
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(time, dispatch_get_main_queue(), {
alertController.dismissViewControllerAnimated(true, completion: nil)
print("popup disappeared")
})
}
Qui fonctionne très bien, mais j'ai voulu introduire une certaine amélioration. Je voulais y ajouter un bouton permettant d'annuler cette popup immédiatement puis éviter d'afficher le message dans la console. Est-il un moyen de l'affichage du popup pour l'utilisateur? Aussi existe - il un moyen de montrer dans ce message le compteur avec le nombre de secondes de course qui montrent combien il reste de temps jusqu'à ce que la fenêtre contextuelle disparaît?
Qui a l'air vraiment prometteur, je dois l'avouer 🙂 Est-il une chance que vous avez un smilar code swift? Je ne suis pas (encore) familier avec l'obj-c 😐
OriginalL'auteur user3766930 | 2016-04-19
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un
NSTimer
pour décrémenter un compteur de mise à jour de l'affichage des alertes et des avis de rejeter l'affichage des alertes lorsque le compteur atteint 0. Ce code est une adaptation de ma Objective-C réponseOriginalL'auteur Paulw11
Juste au cas où quelqu'un en a besoin, c'est une Swift 4 version de la @Paulw11 solution
OriginalL'auteur Dknacht
Je sais que ce n'est pas directement répondre à votre question, mais avez-vous considéré l'utilisation de MBProgressHUD SCLAlertView? Ils offrent tous deux des fonctions qui permettent d'afficher un message d'alerte qui disparaît après un certain laps de temps. SCLAlertView permet à l'utilisateur d'annuler immédiatement, où que MBProgressHUD ne le fait pas. Si vous voulez plus d'informations sur la façon de mettre en œuvre ces, laissez-moi savoir si je peux ajouter plus d'infos!
Je ne pense pas que ce qu'il est intégré dans SCLAlertView, mais je ne vois aucune raison pourquoi vous ne pouvez pas créer un NSTimer à afficher à l'utilisateur. Je voudrais regarder en ligne pour un compte à rebours rapide si vous ne savez pas comment en créer un. Vous serait alors le feu de la minuterie lorsque le SCLAlertView s'affiche. Juste être conscient que, si vous avez l'alerte pendant trois secondes, la minuterie ne peut compter que deux ou deux secondes et demi, parce que ça prend un moment pour charger. Je voudrais juste jouer avec la minuterie pour le faire fonctionner.
OriginalL'auteur Dan Levy