Я пытаюсь сделать всплывающее окно (UIView
) с прозрачным фоном (еще UIView
). Все работает нормально для «всплывающего окна UIView
», но я не мог понять, как сделать «прозрачный фон UIView
» (над панелью навигации и панелью вкладок).
Сначала я создал UIView в раскадровке и подключил розетку:
popupView.center = CGPointMake(CGRectGetMidX(self.view.bounds), tableView.center.y);
self.view.addSubview(popupView)
popupView.clipsToBounds = true
popupView.alpha = 0
Затем при отображении popupView
я создаю прозрачный фон UIView:
func clicked() {
self.popupView.alpha = 1
let screenSize: CGRect = UIScreen.mainScreen().bounds
let opaqueView = UIView()
opaqueView.frame.size = CGSize(width: screenSize.width, height: screenSize.height)
opaqueView.backgroundColor = UIColor.blackColor()
opaqueView.alpha = 0.5
self.view.addSubview(opaqueView)
}
Однако фоновое представление не выходит за пределы NavigationBar или TabBar. Я пробовал это, но ничего не меняется:
myTabBar.view.bringSubviewToFront(opaqueView)
Чего я хочу добиться, так это того, чтобы, имея popup UIView
в самом начале, иметь opaque UIView
над всем, включая NavBar и TabBar, но позади popup UIView
Обновление:
Что касается ответа @Alex, с помощью этого фрагмента я добился отображения opaqueView
поверх TabBar и NavBar; но теперь он также выходит за пределы popupView.
func display() {
popupView.center = CGPointMake(CGRectGetMidX(self.view.bounds), tableView.center.y);
self.view.addSubview(popupView)
popupView.clipsToBounds = true
let opaqueView = UIView()
let screenSize: CGRect = UIScreen.mainScreen().bounds
opaqueView.frame.size = CGSize(width: screenSize.width, height: screenSize.height)
UIApplication.sharedApplication().keyWindow!.insertSubview(opaqueView, belowSubview: popupView)
}
Как разместить opaqueView ниже popupView, а opaqueView выше всего остального?