UIPageViewController 的视图框架在 iOS 上是不可预测的

Posted

技术标签:

【中文标题】UIPageViewController 的视图框架在 iOS 上是不可预测的【英文标题】:UIPageViewController's frame of the view is unpredictable on iOS 【发布时间】:2017-02-01 12:00:20 【问题描述】:

我正在尝试分配 UIPageController 的子视图的框架。 我在故事板上创建了一个视图,分配了一个约束,做了一个出口。但是在应用程序中它的行为很奇怪。

    self.pageviewcontroller.view.frame = self.viewForPageContent.frame
    self.addChildViewController(pageviewcontroller)
    self.view.addSubview(pageviewcontroller.view)
    self.pageviewcontroller.didMove(toParentViewController: self)

红色矩形是viewForPageContent:

结果如下,在我的 iphone 5s 上它变得非常奇怪:

///但在 7 模拟器上它给出了正确放置的视图,但带有点。可能是什么问题?

【问题讨论】:

【参考方案1】:

最终我没有找到合适的解决方案,但我的解决方法是以下代码和平,以防其他人遇到问题:

self.pageviewcontroller.view.frame =
        CGRect(x: 0,
               y: UIApplication.shared.statusBarFrame.height
                + (self.navigationController?.navigationBar.frame.height)!
               width: self.view.frame.size.width,
               height: self.view.frame.size.height
                - (self.navigationController?.toolbar.frame.height)!
                - (self.tabBarController?.tabBar.frame.height)! )

【讨论】:

以上是关于UIPageViewController 的视图框架在 iOS 上是不可预测的的主要内容,如果未能解决你的问题,请参考以下文章

UIPageViewController 带有最后一个视图,没有页面指示器

UIPageViewController 与滚动视图奇数插入反弹

容器视图内的 UIPageViewController 内的堆栈视图的自动布局?

滑动后调整超级视图大小时,UIPageViewController 视图会跳转

在 UIPageViewController 中重新加载视图

带有 UIPageViewController 的 Swift 容器视图