I am adding a TTTableViewController into an existing UIViewController, one strange thing I found is that the frame properties of the initialized TTTableViewController are wired, e.g. in a iOS layout.
I have:
UIStatusBarUINavigationControllerUIViewControllerUITabBar
In order to set the TTTableViewController fill in all the remaining space I need to set the height to 460 instead of 367. (367 = 480-20-44-49)
e.g.
self.tableViewController.view.frame = CGRectMake(0, 0, 320, 460.0f);
instead of
self.tableViewController.view.frame = CGRectMake(0, 0, 320, 367.0f);
Why is it so?
*Edit for clarification: I mean TTTableViewController on the top of TTViewController (using [self.view addSubview:self.tableViewController.view];), and I need to set the self.tableViewController.view.frame = CGRectMake(0, 0, 320, 460.0f); instead of 367
It depends on when you are setting the frame, I think. I’m pretty sure when you set the frame in viewDidLoad, for example, you’ll be setting it before the status bar and other things are taken into account. There might be other cases like this. If you set it to 320:460, it’ll be resized to take into account the status bar and other stuff afterwards, making it fill in the rest of the screen. If you set it to 320:367 because you’ve already taken into account that stuff, it’ll get resized again and squished (basically scaled down twice), making it only fill part of the screen. If you’re using viewDidLoad you could try sticking it in another method (maybe viewWillAppear?) or just keep using 320:460.
It’d be nice to know when you set the frame, exactly. Also keep in mind that I could be way off. My mind’s feeling a little fuzzy right now.