que framework create ios swift uiview

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)