2017-07-07 4 views
1

Oui, je sais. Vous ne pouvez pas modifier l'apparence d'un UIAlertController. Je ne veux pas changer l'arrière-plan du UIAlertController lui-même, je veux changer la teinte de l'arrière-plan de la vue. Tu sais comment c'est comme une couleur noire transparente? Je veux changer cette couleur pour effacer. Comment ferais-je cela?Modifier le fond d'UIAlertController Teinte

Répondre

0

Vous pouvez changer la couleur de fond comme suit:

let alert = UIAlertController(title: "TITLE", message: "My message", preferredStyle: .alert) 
if let subview = alert.view.subviews.first?.subviews.first?.subviews.first { 
    subview.backgroundColor = .red 
} 
alert.view.tintColor = UIColor.black 
+0

Désolé, cela n'a pas fonctionné ... –

+0

Oh, je viens de réaliser que vous avez édité la question – Lawliet

+1

Ce code fait beaucoup de suppositions à propos de la structure de sous-vue privée d'un 'UIAlertController'. Cela peut fonctionner maintenant. Il peut casser dans une future mise à jour iOS. Il faut se méfier. – rmaddy

0

Non, vous ne pouvez pas changer la couleur de fond transparent. Cela n'appartient pas à une partie de la variable UIAlertController que vous pouvez contrôler.

Vous devrez le réparer en présentant un nouveau contrôleur de vue avec un arrière-plan transparent et un élément d'interface utilisateur similaire à celui d'un contrôleur d'alerte. Pour continuer à approuver, vous n'avez pas de contrôle pour le contrôleur d'alerte, créez une autre vue avec l'origine du cadre sur 0,0, puis ajoutez à la vue de votre contrôleur d'alerte. Il apparaîtra dans le coin supérieur gauche de votre fenêtre pop-up, pas la fenêtre de votre fenêtre