在降低UITableViewCell的高度时解决约束冲突

时间:2015-03-27 21:29:39

标签: ios uitableview autolayout

我已经在单元格UITableViewCell中实现了一个自定义UISlider,其UIVimageView在其左侧和右侧有两个contentViewUISlider。我已经为这些元素设置了自动布局约束。 contentView具有contentView的顶部和底部垂直间距约束,其中前导和尾部设置为图像。图像还具有UITableViewCell的顶部和底部垂直间距约束。这很好用,但是我需要能够在某个时间点“移除”这些单元格,并且通过将Unable to simultaneously satisfy constraints. Will attempt to recover by breaking constraint <NSLayoutConstraint:0x170489010 UITableViewCellContentView:0x155eadd80.bottomMargin == UISlider:0x155eac820.bottom> 的高度更改为0来实现。这样做很好 - 没有外观问题,即使再次扩大细胞。唯一的问题是当我折叠单元格时,自动布局问题会记录到控制台:

{{1}}

如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

要解决这个问题,我只是简单地将那个破坏的约束从等于关系改为小于或等于平等关系。

答案 1 :(得分:0)

当您将tableViewCell的高度设置为0时约束中断的原因如下:您有大于0的顶部和底部偏移约束。

如果单元格的总高度为0且这些约束为正,则表示progressViewimagesViews的高度需要为负值才能满足它们,这是无效的。因此,约束崩溃。

另一种解决方案是对视图使用对齐垂直中心约束,并使用一些偏移量使其适合您的设计。在这种情况下,当单元格的高度为0时,约束不会再崩溃。