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

时间:2013-10-15 08:27:54

标签: ios objective-c cocoa-touch ios7 uipageviewcontroller

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

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

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

3 个答案:

答案 0 :(得分:18)

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

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

    self.pageViewController = ...

    ...

    self.edgesForExtendedLayout = UIRectEdgeNone; // iOS 7 only
}

答案 1 :(得分:8)

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

答案 2 :(得分:4)

在故事板上:

取消选中parentviewcontollers“Extend Edges”部分

中的值

Storyboard screenshot