Je souhaite placer un UIView sur tout l'écran (y compris la barre de navigation). Cette vue sera noire avec une opacité de 0,3. Je veux faire cela pour assombrir le contenu de l'écran et pousser une vue par dessus. J'utilise ce code:
UIApplication.sharedApplication().keyWindow?.addSubview(darkView)
Cela couvre tout l'écran comme prévu. Cependant, je souhaite maintenant placer une autre vue au-dessus de cette vue sombre. Y a-t-il un moyen de faire cela? Tout ce que j'essaie a pour résultat que la vue est sous la vue sombre. Tous les indicateurs seraient vraiment appréciés! Merci
C'est vraiment simple.
Vous venez d'ajouter une autre vue à window
! Et ce sera là, au-dessus de la première vue que vous avez ajoutée. Par exemple, ce code ajoute une vue noire et une vue blanche:
let window = UIApplication.sharedApplication().keyWindow!
let v = UIView(frame: window.bounds)
window.addSubview(v);
v.backgroundColor = UIColor.blackColor()
let v2 = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 50))
v2.backgroundColor = UIColor.whiteColor()
window.addSubview(v2)
Vous pouvez également ajouter la nouvelle vue en tant que vue secondaire de la première vue que vous avez ajoutée:
let window = UIApplication.sharedApplication().keyWindow!
let v = UIView(frame: window.bounds)
window.addSubview(v);
v.backgroundColor = UIColor.blackColor()
let v2 = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 50))
v2.backgroundColor = UIColor.whiteColor()
v.addSubview(v2)
Swift 4
let window = UIApplication.shared.keyWindow!
let v = UIView(frame: window.bounds)
window.addSubview(v);
v.backgroundColor = UIColor.black
let v2 = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 50))
v2.backgroundColor = UIColor.white
v.addSubview(v2)
Simple!
Pour Swift 3, utilisez ceci:
let window = UIApplication.shared.keyWindow!
window.addSubview(someView)
Swift 4 , Ajout d’un UIViewController en tant que sous-vue à UIWindow
Ce code sert à ajouter le contrôleur de vue en tant que sous-vue, couvrant toute la fenêtre avec une animation simple.
let appDelegate = UIApplication.shared.delegate as! AppDelegate
var customReviewPopup = ReviewPopupViewController.init(nibName: "ReviewPopupViewController", bundle: Bundle.main)
self.appDelegate.window?.addSubview((customReviewPopup.view)!)
self.customReviewPopup.view.frame = (self.appDelegate.window?.bounds)!
self.customReviewPopup.view.alpha = 0
self.customReviewPopup.view.isHidden = true
UIView.animate(withDuration: 0.3, delay: 0, options: .transitionCrossDissolve, animations: {
self.customReviewPopup.view.isHidden = false
self.customReviewPopup.view.alpha = 1
}, completion: nil)