AutoLayout 奇怪的行为 iOS

AutoLayout weird behaviour iOS

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

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

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

的底部齐平

这是由于删除子视图引起的,我在加载数据时添加到封面:删除此子视图后,限制更改的位置(这只发生在这个 UIViewController,其他 UIViewControllers这个子视图很好)。我已经通过这样做修复了它:

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