无法将自动布局约束添加到 UIPageViewController
Posted
技术标签:
【中文标题】无法将自动布局约束添加到 UIPageViewController【英文标题】:Can't Add Autolayout Constraints To UIPageViewController 【发布时间】:2014-08-08 09:35:34 【问题描述】:我有一个带有容器的 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 中的外观如何。
【问题讨论】:
【参考方案1】:好吧,我是个白痴,将 UIPageViewController 添加到我的视图中,而不是我的容器视图中。
【讨论】:
以上是关于无法将自动布局约束添加到 UIPageViewController的主要内容,如果未能解决你的问题,请参考以下文章
如何使用自动布局(约束)将子视图添加到 UIPageViewController?