У меня есть приложение с UINavigationController
и UITabBarController
.Внутри UITabBarController
есть кнопка, которая должна представлять модальный вид, для которого я хочу заштриховать весь экран с блеклым фоном (черный с .5 альфа).
Я делаю это с UIView()
следующим образом, это устанавливается внутри класса UITabBarController
:
let fadeBackground: UIView = {
let fadeBackground = UIView(frame: self.view.frame)
fadeBackground.backgroundColor = UIColor.black
fadeBackground.alpha = 0.5
return fadeBackground
}()
Затем я добавляю его в свой вид с помощью view.addSubview(fadeBackground)
.Это, однако, возвращает блеклый фон над всем, включая UINavigationController
и UITabBarController
, но не перекрывает строку состояния.Для иллюстрации:
Теперь мне интересно, как я могу добавить созданный мной UIView()
в верхнюю позицию, чтобы он также проходил через строку состояния.Я знаю, что это может быть сложно, но я видел приложения, где над строкой состояния есть черная полоса, поэтому я думаю, что это то, что мне нужно, и затем устанавливаю альфа на .5 соответственно.
Что ядо сих пор пробовал:
fadeBackground.window?.windowLevel = UIWindow.Level.statusBar + 1
fadeBackground.layer.zPosition = 1
Но, похоже, не работает.Я также попытался добавить UIView()
в keyWindow с помощью UIApplication.shared.keyWindow?.addSubview(fadeBackground)
, но также безуспешно.Есть идеи или предложения?