滑动 UIPageViewController 时出现的间隙 -- Swift

The gap that appears on swiping UIPageViewController -- Swift

我已经使用 UIPageViewController 为 "modul screens" 创建了一个容器。主要问题是如果设置上一个屏幕尺寸不对。

在屏幕截图上,您可以看到显示的是 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时会发生。 我还发现 completion 块不能正常工作。

在我的带有 PageViewController 的容器所在的故事板上,我禁用了选项 Autoresize Subview。并且动画期间的 "gap" 消失了。

但上面的描述并不是解决方案,只是一个线索。 主要问题是屏幕上显示的子标题。我在运行时更改高度限制,这就是为什么 UIPageViewController 不知道屏幕的正确尺寸。 我不得不分开我的屏幕,我做了内屏。我在 UIPageViewController 中使用 UIPageViewController。并且知道动画效果完美。