强制UINavigationBar覆盖下面的容器而不是将其向下推

时间:2015-01-07 12:02:46

标签: ios iphone uikit

我只是想知道是否有一种简单的方法来指定UINavigationBar是否应该在显示时覆盖其内容。我目前有一个UINavigationController,其中包含UIViewControllerUIScrollView,其中包含UIPageViewController(我想要缩放/滚动UIPageViewController)。

我打电话的时候:

[self setNavigationBarHidden:NO animated:YES];

在我的UINavigationController内,UINavigationBar动画,但推送自定义容器及其所有内容,而不是覆盖它。

酒吧设置为半透明,我已经尝试了所有我能想到的设置。我更改了子视图控制器中的extendEdges设置,并在导航栏进入时调整了内容的大小,而不是将其向下推。但我仍然无法弄清楚如何将其覆盖。

非常感谢。

1 个答案:

答案 0 :(得分:1)

好的,道歉。这只是揭示了我对iOS编程知之甚少......

我注意到容器的视图原点y值是-44。所以在我的容器类中添加以下内容:

- (void) viewDidLayoutSubviews
{
    CGRect boundsRect = self.view.bounds;
    boundsRect.origin = CGPointMake(0, 0);
    self.view.bounds = boundsRect;
}

视图中的结果位于屏幕顶部,因此UINavigationBar在显示时会很好地覆盖它。

编辑:实际上正确的方式似乎只是呼唤:

 self.automaticallyAdjustsScrollViewInsets = NO;