如何隐藏静态UITableViewCell?

时间:2014-02-18 16:23:00

标签: ios objective-c uitableview

如何隐藏静态单元?

如果图像不存在,我想隐藏静态单元格。

我试过了:

imageCell.hidden = YES; //did not work

我已经看到了建议更改数据源或使用的答案:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 0;// will hide all cell
}

但我找不到使用特定视图单元格的方法。

我想要实现的目标:

if(image==nil){
//hide imageCell 
}

现在这里是catch,图像是异步下载的,因此在尝试下载之前可能会调用deleguate方法。

2 个答案:

答案 0 :(得分:0)

执行以下操作:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.row == 2 && !myImageIsLoaded)
        return 0; // Will hide just the third row of your table if myImageIsLoaded is false
    return 44;
}

您可以使用以下内容随时为所有动画制作动画(例如,每次加载图片时):

[myTable beginUpdate];
[myTable endUpdate];

如果您的细胞是静止的,那么它应该有效。否则你可能会遇到一些问题。

答案 1 :(得分:0)

如果您希望从字面上隐藏图像不存在的单元格,可以尝试:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    return [cell imageView] ? 44.0f : 0.0f;
}