我只是想知道是否有一种简单的方法来指定 UINavigationBar
是否应该在显示时覆盖其内容。我目前有一个 UINavigationController
,其中包含一个自定义 UIViewController
和一个 UIScrollView
,其中包含一个 UIPageViewController
(我想要一个缩放/滚动 UIPageViewController
)。
当我打电话时:
[self setNavigationBarHidden:NO animated:YES];
在我的 UINavigationController
中,UINavigationBar
动画化,但将自定义容器及其所有内容向下推送,而不是覆盖它。
栏被设置为半透明,我已经尝试了所有我能想到的设置。我更改了 subview Controller 中的 extendEdges
设置,并在导航栏出现时调整了内容的大小,而不是将其向下推。但我仍然不知道如何让它覆盖。
非常感谢。
最佳答案
好的,抱歉。这只是暴露了我对 iOS 编程知之甚少......
我注意到容器的 View 原点 y 值为 -44。因此,在我的容器类中添加以下内容:
- (void) viewDidLayoutSubviews
{
CGRect boundsRect = self.view.bounds;
boundsRect.origin = CGPointMake(0, 0);
self.view.bounds = boundsRect;
}
导致 View 停留在屏幕顶部,因此 UINavigationBar
在出现时可以很好地覆盖它。
编辑:实际上正确的方法似乎只是调用:
self.automaticallyAdjustsScrollViewInsets = NO;
关于ios - 强制 UINavigationBar 覆盖下面的容器而不是将其向下推,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27819104/