我试图在顶部放置一个UIView
-popupView,并在popupView下方但另一个上方放置另一个UIView
(opaqueView)。 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)
opaqueView.alpha = 0.6
UIApplication.sharedApplication().keyWindow!.insertSubview(opaqueView, belowSubview: popupView)
}
使用这种方法会使opaqueView放置在包括popupView在内的所有内容上。相反,我希望在opaqueView上方具有popupView,但在所有其他内容(视图,TabBar,NavBar)上方保持opaqueView
最佳答案
parent.insertSubview(child, belowSubview: sibling)
仅在sibling
是parent
的直接子代时起作用,以便child
和sibling
共享同一父代。当前代码不起作用,因为opaqueView
(孩子)和popupView
(sbiling)具有不同的父母。
这意味着①popupView
应该使用keyWindow
作为父级,或者②opaqueView
应该使用self.view
作为父级。由于您希望opaqueView
高于一切,因此选项①是唯一的解决方案。
关于ios - 将Subview置于一切之上,但置于另一个UIView之下,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37555025/