我有一个带有容器的 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 中的外观如何。