ios - 通话中状态栏将 UIPageViewController 内容 View 向下推

标签 ios statusbar uipageviewcontroller

我正在使用 UIPageViewController。当在此 View 中切换通话状态栏时,它会进行很好的调整。如果在加载 UIPageViewController 之前打开通话中状态栏,则页面会向下推 20pt,并在该空间中显示一个黑色条。

这是一个屏幕截图:

screenshot


其他帖子建议将页面 Controller 上的automaticallyAdjustsScrollViewInsets设置为NO。我已经尝试过了,但它不起作用。我也尝试过self.edgesForExtendedLayout = UIRectEdgeNone;

将 UIPageViewController 框架的原点设置为 0 可以,但感觉不对:

CGRect frame = self.pageController.view.frame;
frame.origin.y = 0;
self.pageController.view.frame = frame;

最佳答案

我最终通过确保 View Controller 的主视图上有正确的约束来解决这个问题。下面是一个示例,我将 View Controller 的 View 作为 subview 添加到 Root View Controller ,然后使用 Masonry ( https://github.com/SnapKit/Masonry ) 建立约束,将所有 subview Controller 的主视图的边缘捕捉到 Root View Controller (它本身已经从 Interface Builder 中设置了自动调整大小蒙版)。这解决了我的状态栏留下黑色空间的问题,因为它将该 View 向下推(而不是重新调整大小):

[self.view addSubview:viewController.view];
[viewController.view mas_makeConstraints:^(MASConstraintMaker *make) {
    make.edges.equalTo(self.view);
}];

就您而言,我没有完整的代码,所以我不确定,但类似:

[self.pageController.view mas_makeConstraints:^(MASConstraintMaker *make) {
    make.edges.equalTo(self.pageController.view.superview);
}];

..应该可以解决问题。

关于ios - 通话中状态栏将 UIPageViewController 内容 View 向下推,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29401135/

相关文章:

ios - 如何快速进行多问题测验,以免问题重复出现?

android - 如何使用 DrawerLayout 在 ActionBar/Toolbar 上方和状态栏下方显示?

Windows 10 Mobile - 无法隐藏状态栏(StatusBar 在上下文中不存在)

ios - UIPageViewController更改导航栏后退按钮标题

ios - 将 NSNotificationCenter 与 SkScene 一起使用到 UIViewController

objective-c - UITableView 由于阴影和边框而滞后

ios:以编程方式设置静态 UITableViewCell (不使用 tableView:heightForRowAtIndexPath:)

c++ - Qt QStatusBar 更宽的分隔符

objective-c - 如何使用 Scrollview(或最佳实践)垂直和水平地进行 Card Deck 样式页面转换

ios - Swift 中可能存在类中的第二个委托(delegate)吗?