我已将问题修改为提供更多信息并清除。
我想拥有一个动态表格视图单元格,具有UITextView的灵活高度和可选的UIImageView。根据UITextView和可选UIImageView的内容大小,可以缩小或扩展单元格。
以下是我的预期(如下图所示):
以下是观点结构:
然而,我实际得到的内容如下。
警告问题如下:
如果我通过选择“添加缺失约束”来修复它,我得到的结果如下:
TextView的约束,内容拥抱优先级,内容压缩阻力和内在大小:
ImageView的约束,内容拥抱优先级,内容压缩阻力和内在大小:
我一直在玩TextView和ImageView的拥抱优先级和压缩阻力优先级,但没有运气。结果都不是我的预期。
请帮助指出设置中出现的问题以及如何实现目标。
答案 0 :(得分:3)
这里棘手的部分似乎是,当有图像时,你希望它是130x130,但是当没有图像时,你希望它被隐藏。
我的建议是为高度和宽度添加一个约束,其中< = 130而不是= 130,并为纵横比添加约束,即1:1。
当没有图像时,这将允许图像视图缩小到0x0。
当有图像时,它会缩放到图像大小,但保持正方形。它永远不会超过130x130。不是你想要的但是接近。
你不应该担心我不认为拥抱和压缩。
要做到你想要的我认为需要代码。您需要为高度和宽度约束创建IBOutlets,但这次使它们= 130。在将图像设置为图像视图时,在代码中,将代码中的约束常量设置为130或0.我认为这是实现您要求的唯一方法。要执行此操作,请按CTRL从宽度和高度约束拖动到控制器的.h并创建IBOutlets。这就是我如何处理需要根据单元格的数据模型状态做出决策的约束。