如何在 objective-C 中隐藏单元格并从流中删除



我正在使用自动布局来布局我的表格视图的单元格。当我在单元格中的某些元素的内容为空时,我想隐藏单元格。

我的问题是,如果我用以下方法标记要隐藏的单元格:

cell.hidden = YES;

则单元格使用的"空格"(其高度以 heightForRowAtIndexPath 计算)仍然存在,但显示为灰色。实际上,单元格是隐藏的,但它仍然是"流"的一部分。

如果我尝试将要隐藏在 heightForRowAtIndexPath 中的单元格的高度设置为零,则会出现异常,因为自动布局无法满足所有约束。

有没有一种简单的方法可以隐藏单元格并将其从显示的"流"中删除,或者我是否必须更新对单元格的约束以允许高度为 0 才能实现?

谢谢尼古拉斯

您需要

更新数据模型以不包含单元格,以便它不会在cellForRowAtIndexPath:中返回。

或者,您可以在将高度设置为 0 时禁用单元格上的自动布局:

[cell removeConstraints:cell.constraints]

最新更新