Xcode - 第一次查看容器视图时初始约束发生更改

时间:2017-06-27 15:09:51

标签: swift xcode constraints

我有一个带有容器的主视图控制器,该容器包括一个表视图控制器。在主视图控制器中,容器在每个方向上使用约束放置,但是当主视图控制器第一次出现时,它不遵循约束。

但是,当我切换另一个视图(“Uppladdning”)然后再返回主视图时,容器会正确显示。

This is the view in the Storyboard. This is how it looks in the simulator, as you can see, the bottom part stretches outside of the screen. And here's the settings for my container view in the main view controller.

2 个答案:

答案 0 :(得分:0)

好的,所以我找到了解决问题的临时解决方案。

override func viewDidLayoutSubviews() {
    if (firstTimeDisplay)! {
        self.certificateListViewContainer.frame = CGRect(x: 9, y: 9, width: self.view.bounds.width - 18, height: self.view.bounds.height - 52)
    }
}

也就是说,我首次使用布尔 var firstTimeDisplay 手动更改容器的帧大小。不是一个优雅的解决方案,但它现在会做。

答案 1 :(得分:0)

为容器视图设置背景颜色并再次尝试。这将帮助您确定容器视图或表视图上的约束是否不起作用。

理想情况下,如果您只是从标签栏控制器中的另一个选项卡或从segue切换回视图控制器,则不应触发任何内容。因此,对于像展开方法prepareForSegue这样的方法,请设置一个断点,并查看切换回来时会发生什么变化。然后你会发现你的约束第二次开始工作的原因。