簡體   English   中英

將Subview置於一切之上,但置於另一個UIView之下

[英]Bring Subview Above Everything But Below Another UIView

我試圖將一個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)僅在siblingparent的直接子代時起作用,以便childsibling共享同一父代。 當前代碼不起作用,因為opaqueView (子級)和popupView (sbiling)具有不同的父級。

這意味着要么① popupView應該使用keyWindow作為母體,或② opaqueView應該使用self.view作為父節點。 由於您希望opaqueView在一切之上,因此選項①是唯一的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM