当设备从纵向旋转到横向时,有没有办法阻止iOS应用中的默认UINavigationController自动更改高度?
在下面的屏幕截图中,导航栏将高度改变10或15像素,这导致右对齐的uiview(黑条)在横向模式下延伸到导航栏的边界之外。
我希望导航栏保持恒定的高度。
肖像
风景
答案 0 :(得分:0)
如果您使用UINavigationBar
中的UINavigationController
,则无法执行此操作。
另一种解决方案 - 隐藏标准导航栏并在每个UIViewController中显示您的自定义。 之后,您可以使用此帖子中的解决方案:
答案 1 :(得分:0)
一种方法是在视图控制器中更改顶视图的约束。
-(void)viewDidLayoutSubviews
{
if (_topConstraintForHandlingNavBarHeight) {
_topConstraintForHandlingNavBarHeight.constant = self.navigationController.navigationBar.bounds.size.height;
[self.view layoutIfNeeded];
}
}
这适用于所有观点。