刷UIPageViewController - Swift时出现的差距

时间:2017-07-07 14:56:55

标签: ios iphone swift storyboard uipageviewcontroller

我使用UIPageViewController为“模块屏幕”创建了一个容器。如果设置了上一个屏幕,则主要问题是尺寸错误。

enter image description here

在屏幕截图中,您可以看到显示2个屏幕而不是1.

要设置新屏幕,请使用

func launchViewControllerC(vc: USBaseVaultStepViewcontroller,
                           step: UIPageViewControllerNavigationDirection,
                           animated: Bool = true) {
    vc.delegate = self

    self.pageController.setViewControllers([vc],
                                           direction: step,
                                           animated: true,
                                           completion: nil)

}

对于我使用的上一个屏幕:

func launchPreviousScreen() {
    guard let previousStep = self.currentSetupStep.previousStep() else {
        return
    }

    guard let previousController = self.setupStepViewControllerForStep(previousStep) else {
        return
    }

    self.currentSetupStep = previousStep
    previousController.delegate = self

    self.pageController.setViewControllers([previousController],
                                           direction: UIPageViewControllerNavigationDirection.Reverse,
                                           animated: true,
                                           completion: nil)
}

提示:当 setViewControllers 动画 true 时会发生这种情况。 此外,我发现完成块无法正常工作。

1 个答案:

答案 0 :(得分:0)

在使用PageViewController找到我的容器的故事板上,我已禁用选项 Autoresize Subview 。动画期间的“差距”消失了。

但上面的描述并不是解决方案的一个线索。 主要问题是在屏幕上显示的subHeader。我在运行时更改高度约束,这就是 UIPageViewController 不知道屏幕大小正确的原因。 我不得不分开我的屏幕,我已经制作了内幕。我在 UIPageViewController 中使用 UIPageViewController 。而对于知道动画的完美工作。