1

我有一个带有容器的 UIView,在该容器中我有一个 UIPageViewController,它具有可以滑动浏览的视图,类似于 iPhone 上的 Apple Stocks 应用程序。

我正在尝试使用此所有自动布局,但 UIPageViewController 不会让我添加自动布局约束。

以下代码的最后一行得到一个“'UIPageViewController' 没有可见的@interface 声明选择器'addConstraints'。

NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(self.con_pageViewController);
NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"[conPageViewController]"
                                                               options:NSLayoutFormatAlignAllBaseline
                                                               metrics:nil
                                                                 views:viewsDictionary];
[self.pageViewControllerPortrait addConstraints:constraints];

但是,如果我没有设置某些内容,UIPageViewController 会接管整个页面,如下图所示。整个视图有一个浅绿色背景,容器是粉红色背景,UIPageViewController 有一个橙色背景,(在代码中设置),我想在 UIPageViewController 中显示的视图是棕褐色,(我认为)。

如您所见,UIPageViewController 采用了整个视图,并且该视图旨在显示以下内容。

在此处输入图像描述

如果我将 UIPageViewController 的框架设置为其容器的大小,则如下所示。我觉得如果我不能向 UIPageViewController 添加约束,那么从长远来看,这种方式是最好的。

self.pageViewControllerPortrait.view.frame = self.con_pageViewController.frame;

在此处输入图像描述

如果我对 UIPageViewController 的框架进行硬编码,我可以获得我想要的大小,但是我不明白的是容器是 220px,但我需要将 UIPageViewController 设置为 284px 的高度才能填充容器。

self.pageViewControllerPortrait.view.frame = CGRectMake(0, 0, 320, 284);

在此处输入图像描述

如果有人能解释这里发生了什么,将不胜感激。

如果它有帮助,它在 Interface Builder 中的外观如何。

在此处输入图像描述

4

1 回答 1

0

好的,所以我是个白痴,并将 UIPageViewController 添加到我的视图中,而不是我的容器视图中。

于 2014-08-08T10:03:10.080 回答