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

Iphone 通过将行高设置为0隐藏UITableView?,iphone,uitableview,heightforrowatindexpath,Iphone,Uitableview,Heightforrowatindexpath,我刚刚继承了一段代码,它使用delegateheightforrowatinexpath方法隐藏/显示UITableView中的行,并为“隐藏行”返回高度0 代码是有效的,但它让我担心可能会有很多不可预见的复杂情况。是否有人可以缓解我的担忧,或者给我一些很好的理由解释为什么这会导致问题(我在初始测试中没有发现任何问题) 这个表相当小在两个beginUpdates和endUpdates调用之间添加和删除行会更干净,但是我不明白为什么这个0高度的方法不起作用 如果没有UI工件,也就是说(例如,删除按

我刚刚继承了一段代码,它使用delegate
heightforrowatinexpath
方法隐藏/显示UITableView中的行,并为“隐藏行”返回高度0

代码是有效的,但它让我担心可能会有很多不可预见的复杂情况。是否有人可以缓解我的担忧,或者给我一些很好的理由解释为什么这会导致问题(我在初始测试中没有发现任何问题)


这个表相当小在两个
beginUpdates
endUpdates
调用之间添加和删除行会更干净,但是我不明白为什么这个0高度的方法不起作用


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

我在刚刚编写的代码中也做了同样的事情。我不喜欢不同的表视图设置的不同行为。
在我的例子中,另一种选择更为复杂(一种适用于可见或不可见内容的模型)。
现在,我对它做了一个//黑客评论,并记录了一些特性。
这就是我发现的(iOS 5.0测试版):

  • 设置tableView.rowHeight=1;零将为高度为零的单元格(由tableView:tableView heightForRowAtIndexPath:返回)提供一些默认高度
  • 你必须有一个单元格分隔符。如果未选择“无”,则默认高度将指定给零高度行。高度1包含在分离器中

  • 如果您的代码以不同的方式工作,那么了解它是如何设置的将非常有趣。

    我使用这种方法将隐藏单元格高度设置为0。它工作得很好,也意味着我可以通过扩展单元格高度(比如像日历应用程序那样添加日期选择器单元格)来设置新单元格的包含动画


    在iOS 7.1中,我必须注意的几件事是,即使单元格高度=0,也会出现非常压缩的文本,因此在这种情况下,我需要删除单元格文本。同时,我也改变了细胞分离集的大小。

    没有人激烈反对这一点。。。所以我不会那么担心。动画等其实并不是什么大问题,因为这些更改只在视图离开屏幕时才有帮助。在大多数情况下,我同意最好更新备份数据模型,但我不希望在没有充分理由的情况下修改功能代码。此继承代码(我没有编写)将tableview.rowheight保留为默认值44。在
    tableView:heightforrowatinexpath:
    中,根据数据模型中的“shouldbeevisible”标志返回0或tableView.rowheight。UITableViewCell对象必须“剪裁子视图”,否则内部数据会从隐藏单元格的底部流出。你说的“删除单元格文本”是什么意思?我的意思是,如果单元格包含任何形式的内容,如文本,我必须删除它,否则即使单元格高度为0,它仍会显示。从那时起我就没有测试过它,所以它在iOS 8中可能会有所不同(它在iOS 7.0.x中肯定不是问题,只是在7.1.x中才成为问题)