出于某种原因,我需要将UITabBarController
插入到容器视图中。
当UITabBarController
出现时(跳过容器视图的VC)它完美地运行并且所有东西都被显示出来。但是当我将它插入UIView
时,如下面的UITabBar
存在于Debug View Hierarchy中,但它在应用程序中不可见。在这两种情况下,UITabBar在物体检查员中的归属是相同的。
private var tabBar: TabBarController!
@IBOutlet private var tabBarContainer: UIView!
...
addChildViewController(tabBar)
tabBarContainer.addSubview(tabBar.view)
tabBar.didMove(toParentViewController: self)
好的,所以我已经弄明白了。有两种方法可以解决它:
1:
addChildViewController(tabBar)
tabBar.view.frame = tabBarContainer.bounds
tabBarContainer.addSubview(tabBar.view)
tabBar.didMove(toParentViewController: self)
2:
addChildViewController(tabBar)
tabBarContainer.addSubview(tabBar.view)
tabBar.view.translatesAutoresizingMaskIntoConstraints = false
tabBarContainer.translatesAutoresizingMaskIntoConstraints = false
tabBarContainer.snp.makeConstraints { make in
make.bottom.equalTo(tabBar.view.snp.bottom)
make.top.equalTo(tabBar.view.snp.top)
make.left.equalTo(tabBar.view.snp.left)
make.right.equalTo(tabBar.view.snp.right)
}