Search code examples
iphoneiosobjective-cuitableviewcore-animation

How to animate UITableView header view


I need to animate the insertion of a tableview header view. I want that the table rows to slide down while the header view expands its frame.
So far the best result I got is by using the following code:

[self.tableView beginUpdates];  
[self.tableView setTableHeaderView:self.someHeaderView];  
[self.tableView endUpdates];

The problem with this solution is that the header itself doesn't get animated, its frame doesn't expand.

So the effect I'm getting is that the table rows slide down (as I want) but the header view is immediately shown, and I want it to expand it's frame with animation.

Any ideas?

Thanks.


Solution

  • have the header frame at CGRectZero and set its frame using animation

    [self.tableView beginUpdates];  
    [self.tableView setTableHeaderView:self.someHeaderView];  
    
    [UIView animateWithDuration:.5f animations:^{
      CGRect theFrame = someBigger.frame;
      someHeaderView.frame = theFrame;
    }];
    
    [self.tableView endUpdates];