Search code examples
objective-cuitabbarcontrollerios7uitableview

Tab Bar covers TableView cells in iOS7


I have a custom tableViewController that I'm adding to a TabBarController with

self.tabBarController.viewControllers = [NSArray arrayWithObjects:someOtherViewController, customTableViewController, nil];
self.tabBarController.selectedIndex = 1;

The issue I'm having is that the last 1.5 tableViewCells are being covered by the tab bar at the bottom of the screen on an iPhone 4 running iOS7. When I use the iOS Simulator - iPhone Retina (4-inch) / iOS 7.0 the issue still exists.

What is the correct way to make the tableView line up with the top of the tabBar at the bottom of the screen without using 'magic numbers'?


Solution

  • Try this for your CustomViewController:

    - (void)viewDidLoad
    {
        [super viewDidLoad];
    
        UIEdgeInsets adjustForTabbarInsets = UIEdgeInsetsMake(0, 0, CGRectGetHeight(self.tabBarController.tabBar.frame), 0);
        self.scrollView.contentInset = adjustForTabbarInsets;
        self.scrollView.scrollIndicatorInsets = adjustForTabbarInsets;
    }