通过将行高设置为0来隐藏UITableView?

时间:2011-11-29 15:44:33

标签: iphone uitableview heightforrowatindexpath

我刚刚继承了代码,它使用委托heightForRowAtIndexPath方法隐藏/显示行UITableView,并为“隐藏行”返回高度0。

代码有效,但令我担心的是,可能会出现无法预料的并发症。有人可以放松我的担忧或给我很好的理由,为什么这可能会导致问题(我在初始测试中找不到任何问题)。

该表相当小且总共10行,即使没有这种隐藏的行解决方案,也需要自定义行高。

3 个答案:

答案 0 :(得分:0)

在两个beginUpdatesendUpdates来电之间添加和删除行会更干净,但我不明白为什么这个0高度方法不起作用。

如果没有UI工件,那就是(例如删除按钮显示溢出到下一个单元格。)

答案 1 :(得分:0)

我在我刚刚编写的代码中做同样的事情。我对不同的表格视图设置的不同行为不满意 在我的情况下,替代方案更复杂(一种适应可见或不可见的模型) 现在,我对其进行了一次评论,并记录了一些特点 这是我发现的(iOS 5.0测试):

  1. 设置tableView.rowHeight = 1;零将给出一个高度为零的单元格(由tableView:tableView heightForRowAtIndexPath :)返回一些默认高度。
  2. 您必须有一个细胞分离器。如果未选择任何一个,则将默认高度分配给零高度行。高度为1包含在分隔符中。
  3. 如果您的代码以不同的方式工作,那么了解它的设置方式会很有趣。

答案 2 :(得分:0)

我使用这种将隐藏单元格高度设置为0的方法。它运行良好,也意味着我可以通过扩展单元格高度来动画包含新单元格(例如像日历应用程序一样添加DatePicker单元格)。

在iOS 7.1中我必须注意的一些事情是,即使单元格高度= 0,仍然会出现非常压扁的文本,因此在这种情况下我需要删除单元格文本。此外,我已经更改了单元格的separatorInset的大小,因为它也出现了。