ios - framework - Subvista en la parte superior de la ventana en Swift
uikit swift 4 (3)
Quiero colocar un UIView en toda la pantalla (incluida la barra de navegación). Esta vista será negra con una opacidad de 0.3. Quiero hacer esto para oscurecer el contenido de la pantalla y empujar una vista sobre esto. Estoy usando este código:
UIApplication.sharedApplication().keyWindow?.addSubview(darkView)
Esto cubre toda la pantalla como se esperaba. Sin embargo, ahora quiero colocar otra vista sobre esta vista oscura. ¿Hay alguna forma de hacer esto? Todo lo que intento solo da como resultado que la vista esté bajo la vista oscura. Cualquier puntero sería realmente apreciado! Gracias
Es realmente simple
¡Simplemente agregue otra vista a la window
! Y estará allí, en la parte superior de la primera vista que agregó. Por ejemplo, este código agrega una vista en negro y una vista en blanco:
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)
También puede agregar la nueva vista como una vista secundaria de la primera vista que agregó:
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)
¡Sencillo!
Para SWIFT 3 usa esto:
let window = UIApplication.shared.keyWindow!
window.addSubview(someView)
Swift 4 , agregar un UIViewController como una subvista a UIWindow
Este código es para agregar el controlador de vista como una subvista, que cubre toda la ventana con una animación 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)