Подвью в верхней части окна в Swift

Я хочу разместить UIView по всему экрану (включая панель навигации). Этот вид будет черным с непрозрачностью 0.3. Я хочу сделать это, чтобы затемнить содержимое экрана и нажать на верх над этим. Я использую этот код:

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

Это охватывает весь экран, как ожидалось. Однако теперь я хочу разместить другое представление поверх этого темного представления. Есть ли способ сделать это? Все, что я пытаюсь, просто приводит к тому, что представление находится под темным видом. Любые указатели были бы действительно оценены! спасибо

Ответы

Ответ 1

Это действительно просто.

Вы просто добавляете другое представление в window! И он будет там, поверх первого взгляда, который вы добавили. Например, этот код добавляет черный вид и белый вид:

let window = UIApplication.sharedApplication().keyWindow!
let v = UIView(frame: CGRect(x: window.frame.origin.x, y: window.frame.origin.y, width: window.frame.width, height: window.frame.height))
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)

Вы также можете добавить новое представление в качестве дополнительного представления первого добавленного вами вида:

let window = UIApplication.sharedApplication().keyWindow!
let v = UIView(frame: CGRect(x: window.frame.origin.x, y: window.frame.origin.y, width: window.frame.width, height: window.frame.height))
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)

Simple!

Ответ 2

Для SWIFT 3 используйте это:

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