我有一个带有容器的UIView,在那个容器中我有一个UIPageViewController,它有可以刷卡的视图,类似于iPhone上的Apple的股票应用程序。
我试图用这个来进行所有的Autolayout,但是UIPageViewController不允许我添加Autolayout约束。
以下代码的最后一行得到一个"没有可见的@interface用于' UIPageViewController'声明选择器' 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中看起来如何有用。
答案 0 :(得分:0)
好的,所以我是个白痴,并在我的视图中添加了UIPageViewController,而不是我的容器视图。