主视图的高度在viewControllers之间变化。我应该如何保持它们一样?

时间:2017-07-28 14:47:40

标签: swift uitabbarcontroller uitabbar

我正在创建一个顶级UITabBarController的应用程序,导航控制器作为其子级。当我从选项卡转换到第一个屏幕时,VC.view的帧是(0.0,0.0,375.0,618.0),然后当我转到另一个VC时,该VC的VC.view框架是(0.0 ,0.0,375.0,667.0)。由于差异为49,我假设这是因为TabBar的高度在第一次被考虑在内但不会在堆栈中进一步应用。我根据这些数字使用比例约束。是否有任何选项,因此它将始终删除tabBar高度或始终不会删除高度的选项。我只想要一个每个主要VC视图高度相等的设置。

将它放在所有后代VC的viewDidLoad()中修复了我的问题:

let size = CGSize(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height - tabBarController!.tabBar.frame.height)
view.frame = CGRect(origin: .zero, size: size) 

但这对我来说很惹人喜欢,并且更喜欢切换选项或设置。

2 个答案:

答案 0 :(得分:0)

如果您使用的是故事板或xib,请确保视图底部的约束固定为view而不是bottom layout guide。它应该可以很好地工作。

enter image description here

答案 1 :(得分:0)

连接viewcontroller视图插座并相应地更新高度框架。或者您可以使用约束

添加subView并相应地调整其高度