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

投稿者: Anonymous

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

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

解決

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

- (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];
  }
}
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *