ios - 嵌入式 UIController 高度约束可以超越嵌入吗?
问题描述
我对 iOS 应用程序有以下配置:
容器视图受限于其父 UIViewController 的视图:
- 水平居中
- 等宽
- 等底
嵌入的子视图控制器有一个完整的视图,受以下约束:
- 水平居中
- 垂直居中
- 等宽
- 等高
- 恒定高度 = 200
此时,子视图控制器应该创建一个高度为 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
}
但是这一秒以零高度结束。
解决方案
推荐阅读
- r - Extracting rows matching conditions based on previous rows - r
- json - 预计解码数组
而是找到了一本字典。” - javascript - 嵌套时如何修改CSS值?
- java - 如何使用 Java 解析 XML 响应中的属性
- javascript - 如何将返回传递的数据传递回组件以在 html 中显示
- python - 生产中的多标签二进制化器
- java - Log4j 版本 1 自定义 Throwable (stacktrace) 渲染器,用于删除换行符
- python - 确定两个字符串的排列
- python - 如何生成整数的 n 位组合?
- javascript - 如何从选择的 div 覆盖图像