Frame sizing of tableview within nested child controllers/subviews

Posted by jwoww on Stack Overflow See other posts from Stack Overflow or by jwoww
Published on 2012-10-20T05:28:49Z Indexed on 2012/10/21 23:01 UTC
Read the original article Hit count: 150

Filed under:

I'm a bit confused by the proper frame sizing of a table view to fit within my screen.

Here's my setup of view controllers within view controllers:

  • UITabBarController
    • UINavigationController as one of the tab bar viewcontrollers; title bar hidden
      • ViewController - a container view controller because I need the option to place some controls beneath the UITableView, sometimes (but not in the current scenario)
        • UITableViewController

Now, my question is what the proper frame dimensions of the UITableview should be. Here's what I've got in the ViewController viewDidLoad method. I used subtracted 49.0 (the size of the tab bar) from 480.0. However, this leaves a black bar at the bottom. 20.0 appears to do it (coincidentally?) the size of the status bar, but I don't understand why that would be. Wouldn't the true pixel dimensions of the tableview be 480-49?

// MessageTableViewController is my subclass of UITableViewController
MessagesTableViewController *vcMessagesTable = [[MessagesTableViewController alloc] init];
CGRect tableViewFrame = CGRectMake(0, 0, 320.0, 480.0 - 49.0);
[[vcMessagesTable view] setFrame:tableViewFrame];
self.tableViewController = vcMessagesTable;
[self addChildViewController:vcMessagesTable];

[[self view] addSubview:vcMessagesTable.view];        

Here's how it looks:

screenshot

© Stack Overflow or respective owner

Related posts about ios