Search code examples
iphoneioscocoa-touchcore-animationuiviewanimation

How to mimic UINavigation animation behavior when transitioning between two UITableViews


I have a UIViewController that houses two UITableViews and swaps between the two. I'm wondering how can I implement the exact same animation behavior that a UINavigationController does when transitioning between these two UITableViews? (ie one tableView gets pushed off the screen left to right or right to left by the other tableView).


Solution

  • // Set table 2 up offscreen as starting state
    CGRect rect = tableView2.frame;
    rect.origin.x = rect.size.width;
    tableView2.frame = rect;
    
    // fill in any details you need for the animation
    [UIView beginAnimation:...
    
    // move 1 left offscreen
    rect = tableView1.frame;
    rect.origin.x = -rect.size.width;
    tableView1.frame = rect;
    
    // bring 2 right onscreen
    rect = tableView2.frame;
    rect.origin.x = 0;
    tableView2.frame = rect;
    
    [UIView commitAnimation];