【问题标题】:AutoLayout weird behaviour iOSAutoLayout 奇怪的行为 iOS
【发布时间】:2016-12-27 22:13:57
【问题描述】:

当我推到UIViewControllerB,然后弹回到UIViewControllerA 时,UIViewControllerA 的整个视图应该高出大约 20 像素,然后(我猜在 viewDidAppear 之后)它会移动到它的正常位置。在此期间,我不会以任何方式操纵约束或UINavigationBar 设置。我确实拥有UIViewControllerA 顶部空间到顶部布局指南的所有元素。什么可能导致这种情况?我已经使用了一些故事板,但从未遇到过这样的事情。

【问题讨论】:

  • 嗯,状态栏是20px。状态栏会隐藏吗​​?
  • 不,什么都没有改变,什么都没有
  • 你能提供你的约束的细节吗?
  • 当顶部约束到顶部布局指南时,UIViewControllers 之间的转换有时会出错,出现的视图似乎会跳起来。我设法通过将顶部约束添加到superview 而不是顶部布局指南来修复我的问题(但是我没有使用UINavigationBar,所以它对我有用)。我从来没有弄清楚问题的原因!

标签: ios swift autolayout margins


【解决方案1】:

尝试在您的viewDidLoadviewDidAppear 中添加view.layoutIfNeeded()

【讨论】:

    【解决方案2】:

    最新的 XCode 添加了一些新行为。尝试设置UIViewControllerA 的约束,使顶部与UINavigationBar 的底部齐平。

    【讨论】:

      【解决方案3】:

      这是由于删除子视图引起的,我在加载数据时添加到封面屏幕:删除此子视图后,约束更改(这仅发生在此 UIViewController 上,其他 UIViewControllers 与此子视图很好) .我已经通过这样做修复了它:

      self.stopLoading() //removes subview
      self.view.layoutIfNeeded()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-23
        • 2014-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-13
        • 2014-02-16
        相关资源
        最近更新 更多