我已将问题修改为提供更多信息且更清晰。
我想要一个动态表格 View 单元格,具有灵活的 UITextView 高度和一个可选的 UIImageView。根据 UITextView 和可选 UIImageView 的内容大小,可以缩小或扩展单元格。
这是我所期望的(下图):
以下是 View 的结构:
但是,我实际得到的如下。
警告问题如下:
如果我通过选择“添加缺少的约束”来修复它,我得到的结果如下:
TextView 的约束、Content Hugging Priority、Content Compression Resistance 和 Intrinsic Size:
ImageView 的约束、内容拥抱优先级、内容压缩阻力和内在大小:
我一直在为 TextView 和 ImageView 使用 Hugging Priority 和 Compression Resistance Priority 但没有运气。没有一个结果是我所期望的。
请帮助指出设置中有什么问题以及如何实现我的目标。
最佳答案
这里棘手的部分似乎是,当有图像时,您希望它为 130x130,但当没有图像时,您希望将其隐藏。
我的建议是为 <= 130 而不是 = 130 的高度和宽度添加一个约束,并为纵横比添加一个 1:1 的约束。
这将允许 ImageView 在没有图像时缩小到 0x0。
当有图像时,它将缩放到图像大小,但保持正方形。它永远不会大于 130x130。不是你想要的,但很接近。
你不应该担心拥抱和压缩我不认为。
做你想做的事我认为需要代码。您需要为高度和宽度约束创建 IBOutlets,但这次使它们 =130。在您的代码中,当您将图像设置到 ImageView 中时,将代码中的约束常量设置为 130 或 0。我认为这是实现您所要求的唯一方法。为此,您可以 CTRL 将宽度和高度约束拖到 Controller 的 .h 中并创建 IBOutlets。这就是我处理约束的方式,这些约束需要根据单元格数据模型的状态做出决定。
关于ios - 内容拥抱和内容压缩阻力、自动布局约束的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29312778/