【问题标题】:Xcode - Initial constraints changes when viewing a container view for the first timeXcode - 第一次查看容器视图时初始约束发生变化
【发布时间】:2017-06-27 15:09:50
【问题描述】:

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

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

【问题讨论】:

  • 您确定容器视图没有遵循约束吗?可以是表格视图吗?
  • 我也是这么想的,但是因为我返回视图时显示正确,即使容器内容相同,我觉得它与表格视图没有任何关系.

标签: swift xcode constraints


【解决方案1】:

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

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。这不是一个优雅的解决方案,但目前可以。

【讨论】:

    【解决方案2】:

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

    理想情况下,如果您只是从选项卡栏控制器中的另一个选项卡或从 segue 切换回视图控制器,则不应触发任何内容。因此,在诸如 unwind 方法 prepareForSegue 之类的方法上设置一个断点,然后查看切换回来时会发生什么变化。然后你会发现为什么你的约束第二次开始起作用了。

    【讨论】:

      猜你喜欢
      • 2018-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2015-10-22
      相关资源
      最近更新 更多