隐藏 UITableview 单元格

2024-05-29

我正在尝试从 UITableView 中隐藏单元格。就像删除操作一样,但我只想隐藏它以便稍后在相同位置显示它。

我知道 UITableViewCell 有一个名为“隐藏”的属性,但是当我使用此属性隐藏单元格时,它会隐藏但没有动画,并且会留下空白

Example:

  1. 第一个细胞
  2. 第二个细胞
  3. 第三个细胞

当我隐藏第二个单元格时,第三个单元格的位置可能会更改为 2 吗?

thanks


使用动画有效“隐藏”行而不实际删除它的一种方法是将其高度设置为零。你可以通过覆盖来做到这一点-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,而不是无条件地返回 0.0)。

简单地更改此方法的返回值不会使表视图自动调整行的高度,为此您可以进行以下调用。

isRowHidden = YES;
[tableView beginUpdates];
[tableView endUpdates];

如果这样做,您将看到两者之间的动画出现/消失过渡。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

隐藏 UITableview 单元格 的相关文章

随机推荐