gpt4 book ai didi

ios - 将 subview 置于一切之上,但置于另一个 UIView 之下

转载 作者:行者123 更新时间:2023-11-29 00:56:47 25 4
gpt4 key购买 nike

我试图将一个 UIView - popupView 放置在顶部,并将另一个 UIView (opaqueView) 放置在 popupView 下方但高于其他任何东西。 PopUpView 与 Outlet 连接。

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 在内的所有内容上。相反,我想让 popupView 位于 opaqueView 之上,但将 opaqueView 保持在其他所有内容之上( View 、TabBar、NavBar)

最佳答案

parent.insertSubview(child, belowSubview: sibling) 仅在 siblingparent 的直接子级时起作用,因此 childsibling 共享同一个父级。当前代码不起作用,因为 opaqueView(子级)和 popupView(sbiling)有不同的父级。

这意味着 ① popupView 应该使用 keyWindow 作为父级,或者 ② opaqueView 应该使用 self.view 作为 parent 。由于您希望 opaqueView 高于一切,选项①是唯一的解决方案。

关于ios - 将 subview 置于一切之上,但置于另一个 UIView 之下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37555025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com