【问题标题】:The gap that appears on swiping UIPageViewController -- Swift滑动 UIPageViewController 时出现的差距——Swift
【发布时间】:2017-12-11 22:29:09
【问题描述】:

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

在屏幕截图上,您可以看到显示 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 块不能正常工作。

【问题讨论】:

    标签: ios iphone swift storyboard uipageviewcontroller


    【解决方案1】:

    在我的带有 PageViewController 的容器所在的情节提要上,我禁用了选项 Autoresize Subview。动画期间的“差距”消失了。

    但上面的描述不仅仅是一个线索。 主要问题是屏幕上显示的 subHeader。我在运行时更改了高度限制,这就是为什么 UIPageViewController 不知道屏幕的正确大小。 我不得不分开我的屏幕,我已经制作了内屏幕。我在 UIPageViewController 中使用 UIPageViewController。并且知道动画作品完美。

    【讨论】:

      猜你喜欢
      • 2016-12-07
      • 2015-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-31
      • 2019-11-21
      相关资源
      最近更新 更多