我正在尝试从UITableView隐藏单元格。就像删除动作一样,但我只想隐藏它,以便以后在相同位置显示它。
我知道UITableViewCell具有一个称为“隐藏”的属性,但是当我使用此属性隐藏单元格时,它会隐藏但没有动画,并且它们留有空白
例子:
当我隐藏第二个单元格时,第三个单元格的位置可能会更改为2?
谢谢
有效地用动画“隐藏”一行而不实际删除它的一种方法是将其高度设置为零。您可以通过覆盖来做到这一点-tableView:heightForRowAtIndexPath:
。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CGFloat height = 0.0;
if (isRowHidden) {
height = 0.0;
} else {
height = 44.0;
}
return height;
}
(当然,您只想为要隐藏的一个或多个特定行返回0.0,而不是无条件地)。
简单地更改此方法的返回值并不能使表视图自动调整行的高度,要做到这一点,您可以进行以下调用。
isRowHidden = YES;
[tableView beginUpdates];
[tableView endUpdates];
如果这样做,您将看到两者之间的动画外观/消失过渡。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句