UIPageViewController 中的奇怪约束行为
Posted
技术标签:
【中文标题】UIPageViewController 中的奇怪约束行为【英文标题】:Strange constraint behaviour in UIPageViewController 【发布时间】:2015-05-18 15:25:07 【问题描述】:在情节提要中,我有 UINavigationController
没有导航栏和根视图控制器 UIPageViewController
有 2 个孩子:LoginVC 和 ChoosePlaceVC。
MainPageVC 是我刚刚设置的 UIPageViewController 的一个简单子类
[self setViewControllers:@[loginVC] direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];
在 Login ViewController 中,我将 logo 图像的约束设置为 top 为 0(logo 到屏幕顶部的距离为 0)。但是当我第一次看到它时,状态栏中的distance 是 20,并且只有当我转到 UIPageViewController 中的下一个 VC 时(weakSelf 是对自定义 UIPageViewController 的弱引用):
[weakSelf setViewControllers:@[choosePlaceVC] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:^(BOOL finished)
];
然后返回登录VC:
[weakSelf setViewControllers:@[loginVC] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:^(BOOL finished)
];
标志到状态栏的距离becomes 0。当我重复移动到下一个 VC 并返回时,距离保持 = 0(这是正确的距离)
为什么第一次出现时距离=20?
【问题讨论】:
【参考方案1】:经过长时间的调查,我想通了:
在扩展边缘中 UIPageViewController 的属性检查器的情节提要中,我未选中顶部栏和底部栏下的复选框。
现在固定约束的奇怪行为(我注意到在这种情况下,无论如何我都有从视图顶部的偏移量 = 20 px,但始终保持不变。但是如果添加主视图的子视图的大小就像主视图一样,如果我将所有元素添加到这个子视图,到顶部的距离 = 0 px)。
【讨论】:
以上是关于UIPageViewController 中的奇怪约束行为的主要内容,如果未能解决你的问题,请参考以下文章
带有 UITableView 的 UIPageViewController 有奇怪的大小
带有 Aspect Fill 图像模式的奇怪 UIPageViewController 滑动行为
在 iOS 8 中将 ViewController 的 View 作为子视图添加到 UIPageViewController 会在显示/隐藏时产生奇怪的 UINavigationBar