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

标签 ios iphone uikit

我只是想知道是否有一种简单的方法来指定 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/

相关文章:

iphone - 如何使用 Objective C 为 iOS 设备编写我自己的下载管理器

ios - 如何更改用于创建按钮/标签的默认字体?

ios - 使 UICollectionView 连续滚动

ios - 有没有办法设置模拟器在有限的内存上工作?

ios - NavigationBar 在 Show Detail segue 后不会消失

iphone - 如何将 CMS 设置为 iPhone 应用程序的后端

ios - 使用 GCD 连续显示多个 View

objective-c - 为什么 UINavigaionController 的子类会调用默认构造函数和自定义构造函数?

ios - 如何使用 Xcode 制作一个 imessage 扩展包以便可以导入

ios - Xcode UI 测试目标中禁用的记录按钮