ios - 如何调整父 View 的大小以符合 subview 的约束

标签 ios swift view autolayout constraints

我创建了一个自定义 UIView 类,在其中创建 2 个 UILabels 和 1 个 UIImageView。我为每个元素设置了约束。由于标签将保存动态文本,每个 View 将具有不同的高度。如何调整 View 的高度?约束(从上到下)是:

View Top > 16 > Label1 > 8 > ImageView > 8 > Label2 > 16 > View Bottom

问题是:我必须用框架初始化 UIView。无论我尝试什么, View 总是使用初始化给出的框架高度。我无法计算所有元素的高度并设置新框架,因为标签有时是 1 行,有时是 5 行。

This is how the view looks at runtime This is how its supposed to look like

提前致谢

最佳答案

您必须使用框架初始化 View ,但是在初始化后将 translatesAutoresizingMaskIntoConstraints 设置为 false 时,传入的框架将变得无关紧要。因此,您可以按照@BallpointBen在注释中建议的操作并传入 .zero:

let newCustomView = CustomView(frame: .zero)
newCustomView.translatesAutoresizingMaskIntoConstraints = false

// auto layout constraints should now determine height

关于ios - 如何调整父 View 的大小以符合 subview 的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49903856/

相关文章:

ios - 使用反向动画将后退按钮位置从左栏按钮更改为右栏按钮

ios - FRC 内容更改时 UITableView 异常

postgresql - 我想根据从 View 中获取的数据创建一个表

android - 在 JAR 文件中包含 Android Activity (及其布局)

iphone - 从 ScrollView 保存图像

ios - 无法使用 SwiftUI 加载相机

ios - 具有关系的 Parse.com 查询

使用枚举的 Swift 协议(protocol)扩展

ios - 如何从我的 UI 测试访问我的 swift 类?

mysql - 在 PHPMyAdmin 中查看变量