NavigationBar在旋转时调整大小会留下空白空间

时间:2016-06-20 15:15:33

标签: ios

  • 我有PortraitViewController
  • 我使用由NavigationController控制的 navigationBar
  • shouldAutoRotate返回supportedInterfaceOrientations返回人像

  • 当我旋转到横向时,我会出现LandscapeViewController

我的问题是当PortraitView旋转时,navgationBar会自动调整大小并降低其高度。这会在navBar下方留下空白区域。

有没有办法阻止/禁用此行为?

对于纵向视图,我不希望在旋转发生时显示空白空间

修改/更新:

经过大量的尝试/错误后,当设备旋转时,我能够将NavBar固定在纵向视图中的位置

CGFloat statusBarHeight = Application.statusBarFrame.size.height;
CGFloat navBarHeightInPortrait = navigationBar.frame.size.height;

** Present LandscapeViewController modally via new NavigationController**

navigationBar.frame = CGRectMake(navigationBar.frame.origin.x,
   navigationBar.frame.origin.y+statusBarHeight,
   navigationBar.frame.size.width,
   navBarHeightInPortrait);

这是否是我所需要的可接受的方式?

1 个答案:

答案 0 :(得分:0)

看起来我把它放在viewDidLoad:

中解决了这个问题
if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) {
    [self setEdgesForExtendedLayout:UIRectEdgeBottom|UIRectEdgeLeft|UIRectEdgeRight];
}