嵌入式UIController高度约束可以超越嵌入吗?

时间:2018-04-24 16:59:33

标签: ios uiviewcontroller autolayout ios11

我对iOS应用程序有以下配置:

enter image description here

容器视图受其父UIViewController视图的约束:

  • 水平居中
  • 等宽
  • 平等的底部

嵌入式子视图控制器具有单个完整视图,该视图受以下约束:

  • 水平居中
  • 垂直居中
  • 等宽
  • 相等的高度
  • 恒定高度= 200

此时,子视图控制器应创建一个想要高200且与屏幕一样宽的视图。但是容器视图被标记为需要高度或y位置。

有没有办法让嵌入视图的约束耦合到嵌入集?

更新

我可以使用主UIViewController中的viewDidLayoutSubview()钩子来正确地调整大小。以下作品:

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    let subSize = self.subController.view.systemLayoutSizeFitting(UIScreen.main.bounds.size)
    self.containerView.heightAnchor.constraint(equalToConstant: subSize).isActive = true
}

但如果可以做到这一点,我认为以下内容也应该有效:

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    self.containerView.heightAnchor.constraint(equalTo: self.subController.view.heightAnchor).isActive = true
}

但是这第二个结果只是零高度。

0 个答案:

没有答案