it-swarm.com.de

Unteransicht über der Fensteransicht in Swift

Ich möchte eine UIView über den gesamten Bildschirm (einschließlich der Navigationsleiste) platzieren. Diese Ansicht wird schwarz mit 0,3 Deckkraft sein. Ich möchte dies tun, um den Bildschirminhalt zu verdunkeln und eine Ansicht darüber zu schieben. Ich verwende diesen Code:

UIApplication.sharedApplication().keyWindow?.addSubview(darkView)

Dies deckt den gesamten Bildschirm wie erwartet ab. Ich möchte jedoch jetzt eine andere Ansicht auf diese dunkle Ansicht legen. Gibt es eine Möglichkeit, dies zu tun? Alles, was ich versuche, führt dazu, dass die Sicht unter der dunklen Sicht liegt. Alle Hinweise wären sehr dankbar! Vielen Dank

24
Kex

Es ist wirklich einfach.

Sie fügen einfach eine weitere Ansicht zu window hinzu! Und es wird dort oben auf der ersten Ansicht sein, die Sie hinzugefügt haben. Dieser Code fügt beispielsweise eine schwarze Ansicht und eine weiße Ansicht hinzu:

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)

Sie können die neue Ansicht auch als Unteransicht der ersten hinzugefügten Ansicht hinzufügen:

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)

Einfach!

51
Sweeper

Verwenden Sie für Swift 3 Folgendes:

let window = UIApplication.shared.keyWindow!
window.addSubview(someView)
17
Mario Jaramillo

Swift 4 , Hinzufügen eines UIViewController als Unteransicht zu UIWindow

Dieser Code dient zum Hinzufügen von View Controller als Unteransicht, wobei das gesamte Fenster mit einer einfachen Animation abgedeckt wird.

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)
1
Pramod More