ContainerView - 隐形视图的关闭程度
ContainerView - how close invisible view
我有这个故事板:
和此代码:
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)")
}
在左侧菜单中,我使用以下代码在此容器视图中打开各种视图:
showSubViewInContainerView(view: "view1")
showSubViewInContainerView(view: "view2")
showSubViewInContainerView(view: "view3")
showSubViewInContainerView(view: "view4")
此代码工作轻松。唯一的问题是,当我在容器视图中打开一个新视图时,我想关闭以前可见的视图。
在 containerview 中只会显示一个活动视图。
目前有多个视图相互重叠。
有人知道怎么解决吗?
在容器中添加新视图之前删除其他视图
systemContainerView.subviews.forEach { [=10=].removeFromSuperview() }
systemContainerView.addSubview(controller.view)
我有这个故事板:
和此代码:
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)")
}
在左侧菜单中,我使用以下代码在此容器视图中打开各种视图:
showSubViewInContainerView(view: "view1")
showSubViewInContainerView(view: "view2")
showSubViewInContainerView(view: "view3")
showSubViewInContainerView(view: "view4")
此代码工作轻松。唯一的问题是,当我在容器视图中打开一个新视图时,我想关闭以前可见的视图。 在 containerview 中只会显示一个活动视图。
目前有多个视图相互重叠。
有人知道怎么解决吗?
在容器中添加新视图之前删除其他视图
systemContainerView.subviews.forEach { [=10=].removeFromSuperview() }
systemContainerView.addSubview(controller.view)