UIPageViewController不尊重iOS 7中的顶级布局指南

kmi*_*ael 11 cocoa-touch objective-c ios uipageviewcontroller ios7

我正在使用页面视图控制器来翻阅一系列视图控制器,每个视图控制器都是从故事板中实例化的.我基本上使用基于标准页面的应用程序代码作为基础,并构建了我需要的东西.我正在翻阅的UITableViewController视图控制器是包含自定义滚动视图的子类或自定义视图控制器.

页面视图控制器嵌入在导航控制器中,但是没有一个视图控制器遵循顶部布局指南,即使在我的自定义视图控制器的情况下约束被设置到故事板中的布局指南,我认为表视图控制器将自动管理它.我的意思是视图的内容从(0.0,0.0)开始,而不是用户可以看到的地方.唯一有效的是实际上将视图控制器视图的帧设置为在状态栏+导航栏下面开始,但我希望滚动视图在透明导航栏下滚动.

我做错了什么或不做什么?

bil*_*tum 18

听起来您不希望内容视图控制器对导航和状态栏进行重叠.如果是这种情况,请尝试将父视图控制器的edgesForExtendedLayout属性设置为UIRectEdgeNone.

// implementation of page view controller's parent view controller
- (void)viewDidLoad
{
    [super viewDidLoad];

    self.pageViewController = ...

    ...

    self.edgesForExtendedLayout = UIRectEdgeNone; // iOS 7 only
}
Run Code Online (Sandbox Code Playgroud)

  • 我想我确实希望他们在导航和状态栏下面.因为它们是滚动视图,所以我希望它们在半透明导航栏下可见. (6认同)

Raj*_*jan 8

对我来说,设置automaticAdjustsScrollViewInsets = NO; 在UIPageViewController上修复了这个问题.您可以在Interface Builder中的Attribute Inspector下更改它,取消选中"Adjust Scroll View Insets".