【问题标题】:UIPageViewController - view was not at the correct position initiallyUIPageViewController - 视图最初不在正确的位置
【发布时间】:2015-08-28 12:55:50
【问题描述】:

我正在使用UIPageViewController 创建我的应用的介绍页面。

作为 gif(我滑动到第二视图并滑动回第一视图):

我的第二页视图最初的位置不正确。它高于应有的水平,稍后下降。但是,如果我向后滑动,第一页的视图是正确的。

我想这是因为UIPageViewController 没有足够早地加载我的第二个视图,所以当第二个视图已经出现时,自动布局系统仍在计算位置。当我滑回第一个视图时,由于视图已经加载,所以没有这样的问题。(这只是我的猜测,我不确定。)

我发现我可以使用2ndViewController.loadView() 作为解决方法,但Apple 的文档不鼓励程序员直接调用此方法。我还发现直接调用这个方法是有问题的。

如何正确预防这种情况?

【问题讨论】:

  • 似乎可以通过设置约束来纠正。
  • 其实这发生在我设置了约束之后。如果我不设置约束,我的视图的框架不是我想要的,但这些框架从一开始就是固定的。他们的位置之后不会改变
  • 你能显示约束吗?我最近遇到了类似的问题。
  • 修复超级视图的顶部空间,它帮助了我。
  • 哇,它有效!我曾经将我的顶部空间固定到“顶部布局指南”,并且在我将顶部空间固定到“superview”后它已修复。这是iOS的错误吗?还是应该这样?

标签: ios swift autolayout uipageviewcontroller ios-autolayout


【解决方案1】:

如果您要设置约束,请从 Superview 修复视图的顶部空间。

【讨论】:

    【解决方案2】:

    在 func create view at index 中,试试我的代码

    func pageTutorialAtIndex(index: Int) ->TestNodeController
    {
        let pageContentViewController = self.storyboard?.instantiateViewControllerWithIdentifier("TestNodeController") as! TestNodeController
        pageContentViewController.automaticallyAdjustsScrollViewInsets = false
        pageContentViewController.pageIndex = index
        return pageContentViewController
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-18
      • 1970-01-01
      • 2021-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多