UITableViewで特定のCellを非表示にしたい。


下記の様に書くと、cellが元々あった場所はそのまま確保されていて、backgroundが露出してしまいます。  
非表示にしたcellがあった場所は上詰めで下のcellが上がって欲しいです。

[code]

    [_targetCell  setHidden:YES];
    [[self tableView] reloadData];
    
[/code]




0xfffffff7さんの解答を元に解決しました。cellがhiddenならheightを0にしました。

[code]

    - (void)viewDidLoad {
      [super viewDidLoad];
      [_targetCell  setHidden:YES];
    }
    
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    
      UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
    
      if( cell.hidden ){
        return 0;
    
      } else {
        return [super tableView:tableView heightForRowAtIndexPath:indexPath];
      }
    }
    
[/code]




自分が以前に自己解決した質問を載せておきます。

[UITableViewの特定セクションの特定のCellを特定条件で隠したい](https://ja.stackoverflow.com/questions/6956/uitableview%E3%81%AE%E7%89%B9%E5%AE%9A%E3%82%BB%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E7%89%B9%E5%AE%9A%E3%81%AEcell%E3%82%92%E7%89%B9%E5%AE%9A%E6%9D%A1%E4%BB%B6%E3%81%A7%E9%9A%A0%E3%81%97%E3%81%9F%E3%81%84/6959#6959)

