Alerte personnalisée (UIAlertView) avec swift
Comment puis-je créer une alerte personnalisée avec Swift? J'essaie de la traduction d'un guide de l'Objective-c, mais les charges d'une présentation en plein écran,
pour faire simple je peux charger une nouvelle mise en page avec le fond transparent, j'ai essayer ceci:
listaalertviewcontroller.view.backgroundColor = UIColor.clearColor()
let purple = UIColor.purpleColor() //1.0 alpha
let semi = purple.colorWithAlphaComponent(0.5)
listaalertviewcontroller.view.backgroundColor = semi
presentingViewController.modalPresentationStyle = UIModalPresentationStyle.CurrentContext
self.presentViewController(listaalertviewcontroller, animated: true, completion: nil)
dans l'animation, c'est transparent, mais lorsque l'animation se termine, il est opaque... et j'ai désactiver opaque option dans la vue... ce que je fais mal?
source d'informationauteur user3426109
Vous devez vous connecter pour publier un commentaire.
Code testé dans Swift 4 et Xcode 9
Comment faire votre propre Alerte personnalisée
Je voulais faire quelque chose de similaire. Tout d'abord,
UIAlertView
est dépréciée en faveur deUIAlertController
. Voir cette réponse pour le standard pour afficher un message d'alerte:Et les deux
UIAlertView
etUIAlertController
ne laisse vraiment beaucoup de personnalisation. Une option est d'utiliser la troisième partie du code. Cependant, j'ai découvert qu'il n'est pas difficile de créer votre propre Alerte par l'affichage d'un autre point de vue contrôleur modaly.L'exemple ici est juste une preuve de concept. Vous pouvez concevoir votre alerte de toute façon que vous voulez.
Storyboard
Vous devriez avoir deux Contrôleurs. Votre seconde vue-contrôleur sera votre alerte. Définir le nom de la classe à
AlertViewContoller
et le Storyboard ID pouralert
. (Les deux sont des noms que nous avons défini nous-mêmes dans le code ci-dessous, rien de spécial à leur sujet. Vous pouvez ajouter le code en premier si vous le souhaitez. Il peut être plus facile si vous ajoutez le code en premier.)Définir la couleur d'arrière-plan de la vue racine (dans votre Alerte-Vue-Contrôleur) pour effacer. Ajouter un autre
UIView
et le centre de contraintes. L'utiliser comme votre alerte fond et y mettre ce que vous voulez à l'intérieur. Pour mon exemple, j'ai ajouté unUIButton
.Code
ViewController.swift
AlertViewController.swift
N'oubliez pas de brancher les prises.
Que c'est. Vous devriez être en mesure de faire toute sorte d'alerte que vous pouvez imaginer maintenant. Pas besoin de code tiers.
Autres options
Parfois, il n'est pas nécessaire de réinventer la roue, si. Je suis impressionné par la troisième partie du projet SDCAlertView (licence MIT). Il est écrit dans rapide, mais vous pouvez l'utiliser avec Objective-C projets. Il propose une large gamme de customability.
Ici est la Swift 3 code. Merci beaucoup @Suragch pour le génial approche pour créer un personnalisé AlertView.
ViewController.swift
AlertViewController.swift
Pour le rendre un peu plus intéressant, ou pour faire de l'effet par défaut dans iOS, vous pouvez ajouter un VisualEffectView ou modifier la couleur de la principale UIView à une couleur foncée et de définir son alpha à 70%. Je préfère la deuxième solution, puisque l'effet de flou n'est pas aussi lisse que celle avec la vue avec 70 alpha.
Effet avec VisualEffectView:
Effet à l'aide d'une UIView avec 70 Alpha: