首页 > 解决方案 > 嵌入式 UIController 高度约束可以超越嵌入吗?

问题描述

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

在此处输入图像描述

容器视图受限于其父 UIViewController 的视图:

嵌入的子视图控制器有一个完整的视图,受以下约束:

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

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

更新

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

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
}

但是这一秒以零高度结束。

标签: iosuiviewcontrollerautolayoutios11

解决方案


推荐阅读