I want to place a UIView over the entire screen (including the navigation bar). This view will be black with 0.3 opacity. I want to do this to darken out the screen content and push a view on top of this. I am using this code:
UIApplication.sharedApplication().keyWindow?.addSubview(darkView) This covers the whole screen as expected. However I now want to place another view on top of this dark view. Is there a way to do this? Everything I try just results in the view being under the dark view. Any pointers would be really appreciated! thanks
If you need a quick way to get hold of a view inside a complicated view hierarchy, you're looking for viewWithTag() – give it the tag to find and a view to search from, and this method will search all subviews, and all sub-subviews, and so on, until it finds a view with the matching tag number.
You can update it by creating a new CGRect and assigning it to the property. CGRect(x:0, y:0, width:100, height:100) is fine. This initialiser is defined in the CGRect extension.
It's really simple.
You just add another view to window! And it will be there, on top of the first view you added. For example, this code adds a black view and a white view:
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) You can also add the new view as a sub view of the first view you added:
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 = .black let v2 = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 50)) v2.backgroundColor = UIColor.white v.addSubview(v2) Simple!
For SWIFT 3 use this:
let window = UIApplication.shared.keyWindow! window.addSubview(someView)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With