gpt4 book ai didi

ios - ContainerView - 隐形 View 的关闭程度

转载 作者:行者123 更新时间:2023-11-28 11:57:49 26 4
gpt4 key购买 nike

我有这个 Storyboard:

enter image description here

和这段代码:

var actualVisibleView : String? = nil

func showSubViewInContainerView(view: String){
let controller = storyboard!.instantiateViewController(withIdentifier: view)
addChildViewController(controller)
controller.view.translatesAutoresizingMaskIntoConstraints = false

systemContainerView.addSubview(controller.view)

NSLayoutConstraint.activate([
controller.view.leadingAnchor.constraint(equalTo: systemContainerView.leadingAnchor),
controller.view.trailingAnchor.constraint(equalTo: systemContainerView.trailingAnchor),
controller.view.topAnchor.constraint(equalTo: systemContainerView.topAnchor),
controller.view.bottomAnchor.constraint(equalTo: systemContainerView.bottomAnchor)
])

controller.didMove(toParentViewController: self)

if self.actualVisibleView != nil && self.actualVisibleView != view {
controller.dismiss(animated: false) {
print("UBIJAM: \(view)")
}
}
self.actualVisibleView = view
print("OTWIERAM: \(view)")
}

在左侧菜单中,我使用以下代码在此 containerview 中打开各种 View :

showSubViewInContainerView(view: "view1")
showSubViewInContainerView(view: "view2")
showSubViewInContainerView(view: "view3")
showSubViewInContainerView(view: "view4")

此代码工作轻松。唯一的问题是,当我在容器 View 中打开一个新 View 时,我想关闭以前可见的 View 。在 containerview 中只会显示一个事件 View 。

目前有多个 View 相互重叠。

有人知道怎么解决吗?

最佳答案

在容器中添加新 View 之前移除其他 View

systemContainerView.subviews.forEach { $0.removeFromSuperview() }
systemContainerView.addSubview(controller.view)

关于ios - ContainerView - 隐形 View 的关闭程度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50599455/

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