我有一个UITableViewCell,我认为这是一个非常简单的布局。主要内容是UIStackView(水平)。在其中我有UIImageView和两个UILabel。在UIImageView上我有2个约束。一个是宽高比为1:1,使其为正方形,另一个是高度约束为55个点。 UIStackView被固定到单元格contentView的所有方面。
现在,当我没有在UIImageView中显示UIImage时,我只需调用imageView.isHidden = true并且UIStackView隐藏图像。同时,在控制台上我看到AutoLayout中断了。它告诉我它不能满足55的高度和宽度为0.
很有意义,因为由于宽高比,UIImageView也希望宽度为55。但是,在设备本身上我没有看到任何奇怪的故障。它完全符合我的预期。
所以问题是
这是一件坏事吗?如何用最少量的代码解决这个问题?
顺便说一下,我使用动态高度自我调整UITableView并让AutoLayout确定我的单元格的高度。可能会发生UIImageView是该单元格的唯一内容。
答案 0 :(得分:0)
它不是一个错误StackView为它添加了约束条件。当您在视图中调用隐藏时,在您的情况下是 imageView 。 stackView尝试将高度Constraint设置为0,但是您添加的高度约束与stackView添加的高度约束冲突。
您可以将高度限制的优先级更改为小于1000的值,以解决冲突问题